2016-09-21 3 views
0

javascript 코드의 단위 테스트를 위해 npm 라이브러리 jasmine-node를 사용하고 있습니다. 내가 아는 한 Jasmine 1.3을 사용합니다.Nodejs에서 Jasmine 1.3을 사용하여 약속이 해결되었는지 여부를 확인하십시오.

대부분의 코드에는 비동기 약속이 포함되어 있습니다 (제 3 자 약속 라이브러리가 아닌 ES6 기본 제공 약속 사용). Jasmine 2에는 done()이라는 메서드가 있으며 약속에 대한 "then"또는 "catch"호출에서 호출 할 수 있습니다. Jasmine 1.3에서는 무엇을 할 수 있습니까? 이 시뮬레이션 방법이 있습니까? 또는 jasmine-node의 더 나은 접근 방식이나 다른 지점이 있습니까? Test if a promise is resolved or rejected with Jasmine in Nodejs

+0

내가 아는 한 Jasmine 1.x에는 좋은 비동기 테스트 지원이 없습니다. 가능하다면 Jasmine 2.x로 이동할 것입니다. 그것은 여러 가지 이유로 wayyyy 더 좋습니다. 좋은 방법이 아닌 또 다른 가능성은 모든 비동기 코드를 조롱하고 스터 빙하여 동일한 틱에서 동 기적으로 실행할 수 있도록하는 것입니다. 1.3은 실제로 비동기 지원을 가지고 있지만 약간 지저분한 것 같습니다. http://jasmine.github.io/1.3/introduction.html#section-Asynchronous_Support –

+0

Jasmine 2로 이동하는 것을 좋아하지만 npm 모듈의 편리함을 좋아합니다. 여전히 1.3입니다. 재스민 2와 같은 "done()"메서드를 호출 할 수있게 해주는 유망한 것으로 보이는 Jasmine.Async라는 모듈을 발견했지만 여전히 연구 중입니다. –

+0

나는 당신이 실수라고 생각합니다. jasmine-core npm 모듈은 원하는 모듈입니다. https://www.npmjs.com/package/jasmine-core –

답변

1

당신은 재스민 노드 모듈을 사용하지 않아야합니다 :

이 질문을 참조하십시오. 더 이상 유지되지 않습니다 (마지막 커밋은 2 년이 넘었고 PR은 쌓여 가고 있습니다). 대신 자스민의 공식 번들 jasmine-core을 사용해야합니다.

그리고 솔직히이 패키지의 번들은 너무 명확하지 않습니다. 실제로 jasmine 패키지를 설치하려고합니다. 이를 통해 재스민과 함께 사용할 프로젝트를 프로비저닝하고 스펙을 실행하기위한 명령을 제공하는 명령 행 도구를 제공합니다. (문서에서) 예 :

지역 설치 :

npm install --save-dev jasmine 

./node_modules/.bin/jasmine examples 

실행하려면 몇 가지 예제 프로젝트를 시드 재스민

에 대한
./node_modules/.bin/jasmine init 

을 프로젝트를 초기화하려면 테스트 스위트

(210)
./node_modules/.bin/jasmine 

당신은 또한 다음과 같이 전 세계적으로 자스민를 설치하도록 선택할 수 있습니다 :

npm install -g jasmine 

이 방법을 사용하면 ./node_modules/.bin/ 각 호출을 접두사를 피할 수 있습니다. 그러나 모든 프로젝트 종속성에 대해 로컬로 설치된 인스턴스를 사용하는 것을 선호합니다. 이렇게하면 프로젝트에서 기대하는 것과 동일한 버전의 종속성을 사용할 수 있습니다.

+0

감사. 나는 이것을 시도 할 것이다. –

+0

당신이 개괄 한 프로세스가 내 경로를 변경하지 않았으므로 "./node_modules/.bin/jasmine init"을 입력해야하지만 그렇지 않으면 정상적으로 작동합니다. –

+0

'npm install -g jasmine'은 그것을 전역 적으로 설치해야합니다. 그러나 프로젝트 종속성이있는 경우 로컬로 설치된 버전을 사용하는 것이 가장 좋습니다. 나는 나의 대답을 업데이트 할 것이다. –