2014-12-01 3 views
0

질문이 하나 있습니다. 나는 최근에 CanJS을 사용하기 시작했으며 TeamCity (headless)로 빌드 된 maven에서 작동 할 단위 테스트 (funcunit/jasmine)을 만들기 시작했습니다.CanJS : 다른 부분의 단위 테스트

보기에 의존하지 않고 인스턴스 및 테스트 기능을 만들 수 있으므로 모델을 테스트하는 것이 상대적으로 쉽습니다. 그러나 구성 요소 및 CanJS의 다른 부분을 테스트하는 방법은 분명하지 않습니다. 그냥 내가 필요가 없습니다 명확히하기 위해 E2E 사용자 상호 작용 테스트, 내가 달성하려고 노력하고있어 그냥 Can.fixtures에 의해 제공되는 데이터를 가지고 다음 테스트에서 내 함수를 호출하여 잘 작동합니다.

답변

0

컨트롤러 테스트는 jasmine-fixture을 재스민 테스트 베드에 추가하면 도움이됩니다. 적절한 DOM 요소를 부착()하고 인스턴스 또는 컨트롤러 프로토 타입에 스파이를 추가하기 전에 beforeEach()에 컨트롤러를 인스턴스화 한 다음 이벤트를 발생 시키거나 일부 DOM 트리가 필요한 기능을 직접 호출 할 수 있습니다.

구성 요소의 경우 더 많은 단계가 필요합니다. 구성 요소가 인스턴스화되는 방식으로 인해 사용자 지정 요소를 만들고 DOM에 첨부하고 afterEach()에 정리하거나 can.view.callbacks.tagHandler(el, tag_name)을 사용하여 이미 구성 요소에 대한 구성 요소를 인스턴스화해야합니다 (예 : can.view()). DOM.

분명히하기 위해 컨트롤러/구성 요소 기능이 이벤트 처리기에서와 같이 DOM에서 데이터를 스 루핑하는 경우 작업이 더 쉬워집니다. 또한 프로토 타입에 직접 함수를 호출하고 스파이 개체를 this.scopethis.options에 만들려면 작동합니다.