2016-12-15 1 views
1

저는 현재 매우 큰 모듈러 웹 앱을 만들고 있습니다. 프런트 엔드는 AngularJS 1.x를 사용하여 구현됩니다. 이 프로젝트는 약 2 살이며 개발 프로세스의 일부로 수행 된 단위 테스트가 없었습니다. 이제 Angular 코드베이스의 최소 85 %에 대한 단위 테스트를 추가해야한다는 요구 사항이 있습니다. 일반적인 합의는 유닛 테스트를 위해 "Jasmine/Karma 또는 Mocha/Chai/Sinon을 사용하십시오."AngularJS 1.x 및 Tape JS

일반적인 테스트 라이브러리를 살펴본 후 염려되는 점은 일반적으로 데이터 모의 테스트 및 단위 테스트를 위해 입력해야하는 작업량입니다. 응용 프로그램을 다시 개발하는 것만큼이나 과도한 것으로 보입니다. 최근에 Jasmine과 같은 정교한 테스팅 라이브러리를 이용한 유닛 테스팅의 일반 오버 헤드에 관한 몇 가지 기사도 읽었습니다. (https://medium.com/javascript-scene/why-i-use-tape-instead-of-mocha-so-should-you-6aa105d8eaf4#.1bzhv0q1f 참조)

테잎 JS를 사용하여 테스트 할 때 파트는 Angular 1.x. 저는 단위 테스트를 처음 접했고 누군가가 각도 1.x로 테이프를 사용하여 단위 테스트를 수행했는지 확인하려고 했습니까? 이것이 가능한가?

테이프를 사용하여 장단점 및 전반적인 단위 테스트에 대한 생각은 크게 감사하겠습니다.

감사합니다.

+0

내가 AngularJS와 함께 테이프를 사용 해본 적이,하지만 난 아이디어를 좋아하지 :

더 읽기.재스민/카르마 (Jasmine/Karma)에서 단위 시험을 씁니다. 실은 모의 실험이 필요합니다. 나는 시험을 통과하기 위해 최대한 조롱하여 작업량을 줄이려고 노력합니다. 이것의 일부는 필자가 작성한 기능이 순수하다는 것을 확인하는 것이다. 또한 $ componentController로만 테스트합니다. 내 단위 테스트에서 html을 컴파일하지 않습니다. – user2954463

답변

0

내 의견에 대한 후속 조치.

저는 모두가 Jasmine을 사용하는 이유는 AngularJS 인터페이스를 통해 코드를 테스트하려는 것이고 테스트를 필요로한다고 생각합니다.

예를 들어, 구성 요소에 대한 테스트를 작성한다고 가정 해 보겠습니다. 구성 요소의 angular.module을 부트 스트랩해야합니다. 또한 $ componentController를 통해 구성 요소의 컨트롤러 인스턴스를 만들어야합니다. 그리고 컨트롤러가 어떤 의존성을 필요로한다면, 그 의존성이 또한 그들의 angular.module 부트 스트랩을 가지고 있는지 확인해야 할 것입니다.

재스민은이 모든 것을 훌륭하게합니다.

그러나 재 스민은 매우 빨리 다루기 힘들 수 있습니다. 그것은 모든 종류의 전역 변수를 소개합니다. BeforeEach와 관련된 반복 톤이 있습니다. 그리고 테스트를 실행하기 위해서는 아마도 카르마를 사용해야 할 것입니다. 카르마는 많은 의존성이 필요하며 느린 속도입니다.

나는이 모든 것을 건너 뛰고 평범한 구식 자바 스크립트로 코드를 테스트해도 괜찮다면 TapeJS 만 사용할 수 있다고 생각한다. 이 접근법은 단위 테스트에서는 괜찮다고 생각합니다. 그러나 e2e 테스트에서는 자스민/각도기로 뛰어 들어야합니다.

예를 들어, AngularJS 응용 프로그램은 Typescript로 클래스 구문으로 작성됩니다. 모든 구성 요소 컨트롤러 및 서비스는 내보낼 유형 스크립트 클래스입니다. 따라서 TypeJS로 테스트하려면 typescript 클래스를 가져 와서 인스턴스를 만들고 들여다 보면된다. 이제 모든 메서드에 액세스 할 수 있습니다 (모든 메서드가 public이라고 가정). 입/출력이 예상대로 작동하는지 테스트 할 수 있습니다.

AngularJS 1.5+에서는 제대로 작동하지만 지시문이 많은 앱을 사용하는 경우 어떻게 작동하는지 잘 모르겠습니다.

나는 이것이 도움이되기를 바랍니다. 테스트 주자를 일하기 위해 노력하는 지출 일이 가장 최악입니다.

https://ponyfoo.com/articles/testing-javascript-modules-with-tape

관련 문제