https://github.com/ry/node/wiki/modules#testing 에서 다소 긴 테스트 프레임 워크 목록을 살펴 보았습니다 . 이 프레임 워크에 대한 경험은 무엇입니까?
분명히 브라우저에서 실행하는 기능은 큰 보너스이지만, 주로 Node.js에 관심이 있습니다. 비동기식 경사가 큰 것이 좋습니다.
https://github.com/ry/node/wiki/modules#testing 에서 다소 긴 테스트 프레임 워크 목록을 살펴 보았습니다 . 이 프레임 워크에 대한 경험은 무엇입니까?
분명히 브라우저에서 실행하는 기능은 큰 보너스이지만, 주로 Node.js에 관심이 있습니다. 비동기식 경사가 큰 것이 좋습니다.
답변:
최신 정보:
제 생각에는 모카 가 최고입니다.
이 프레임 워크에 대한 경험은 무엇입니까?
테스트 커버리지가있는 매우 멋진 테스트 프레임 워크 인 expresso 와 함께 연주했습니다 . Express.js (Node.js 및 Connect에 구축 된 초고속 서버 측 JavaScript 웹 개발 프레임 워크) 의 작성자 인 TJ Holowaychuk에 의해 작성되었습니다 . 나는 최근에 should.js 라는 멋진 라이브러리를 가지고 있다는 것을 알았 습니다.
분명히, 브라우저에서 실행하는 능력은 큰 보너스가 될 것입니다
브라우저에서 실행할 수 있다고 생각하지 않지만 브라우저에서 왜 실행하고 싶은지 모르겠습니다.
하지만 주로 Node.js에 관심이 있습니다. 비동기식 경사가 큰 것이 좋습니다.
익스프레스에서 인용 :
각 콜백에 전달 된 인수는 beforeExit이며 일반적으로 콜백이 호출되었다는 것을 확인하는 데 사용됩니다.
beforeExit를 사용하여 비동기 함수를 테스트 할 수 있습니다.
팁 : GitHub 에서 TJ Holowaychuk 을 따르십시오 . 그는 매우 훌륭한 오픈 소스 코드를 생성하기 때문입니다.
비동기 BDD 프레임 워크 (Behaviour Driven Development)를 사용하고 작업을 완료 하는 VowsJS 를 사용합니다.
요즘 내가 본 것에서 많은 사람들이 NPM 모듈을 테스트하기로 결정했기 때문에 지금까지 사용하기에 가장 적합하다고 생각합니다.
NodeJS와 함께 사용할 수있는 인기있는 테스트 프레임 워크는 다음과 같습니다.
또한 자바 스크립트 테스트 프레임 워크의 목록을 볼 수 있습니다 여기에
더 나은 코드를 작성하는 데 도움이되는 라이브러리는 더 적습니다.
또한이 대나무 CI 서버 에서 골드 피처 가 빌드 및 테스트 자동화가. Apache / Tomcat (자바를 사용하고 매우 무겁게 만드는 sux) 용 패키지 도 무료는 아니지만 10 달러 의 스타터 라이센스가 있으므로 저렴하다고 생각합니다. 지금까지 찾은 모든 CI 서버 중 가장 많이 사용되는 기능이며 xUnit 을 지원하는 모든 단위 테스트를 지원 하므로 Bamboo를 사용하여 모든 언어에 대해 빌드 / 테스트를 실행할 수 있습니다.
NodeJS를 사용하는 CI의 또 다른 옵션 은 오픈 소스 커뮤니티를위한 호스팅 된 지속적인 통합 서비스 라고하는 많은 사람들이 오픈 소스 프로젝트에 사용하는 Travis 입니다 .
Node JS 프로젝트를위한 Continuous Integration 주제에 대한 Google 그룹 토론도 있습니다 .
위의 asker의 의견을 바탕으로 서약을 시도했으며 비동기 테스트와 관련된 많은 문제를 해결했습니다. 직렬 및 병렬 테스트를 혼합하는 기능은 훌륭합니다.
안내 문서를주의 깊게 읽으십시오. 그러나 일단 숙달되면 유연하고 강력하며 훌륭하고 깨끗한 결과를 얻을 수 있습니다.
업데이트 : 나는 또한 체크 아웃하는 사람들을 격려 할 해야 그들의 주장에 대해. 매우 유연하고 읽기 쉬운 어설 션을 허용하며 Expresso 및 Vows 및 대부분의 다른 테스트 프레임 워크와도 호환됩니다.
(알프레드의 답변에 대한 의견을 사람들이 알지 못하는 경우를 대비하여 별도의 답변으로 게시하고 있습니다.)
2015 년 1 월 7 일 업데이트 : 가치있는 것을 위해 Vows에서 Mocha로, 그리고 Should에서 Chai로 전환했습니다. Mocha는 이제 promise를 사용하여 비동기 테스트를 훨씬 더 잘 지원하며 Chai는 expect
객체 프로토 타입을 수정하고 싶지 않은 사람들을 위해 API를 포함하여 몇 가지 유연한 어설 션 옵션을 허용합니다 .
should
프로토 타입에 이름 should
을 지정할 수 있는 열거 할 수없는 속성 을 선택합니다 Object
. 즉, 처리하는 모든 값 / 객체가 테스트 시간과 프로덕션 시간에 약간 다르게 보입니다 . 대부분의 경우 이것이 '작동하는 것'이지만 원칙적으로 내장 프로토 타입을 수정하는 것은 좋지 않습니다. 테스트하는 동안에 만 그렇게하는 것이 잘못 느껴집니다. 그것들은 모두 단독으로 수행되어 멋진 구문을 가질 수 있습니다.
should
확장하지 않고 사용하기 쉽다 Object.prototype
(간단한 require('should').noConflict()
대안으로 should.js를 호출 하고 사용함)
진정한 BDD 프레임 워크를 원한다면 Yadda를 고려 하십시오 . 기능 파일을 지원하기 위해 mocha, jasmine, nodeunit, qunit, zombie 및 casperjs와 통합됩니다.
Scenario: provides the version of all services
given service x is running
and service y is running
when I request the service versions
then service x should be version 0.0.1
and service y should be version 0.0.2
나는 노드 유닛을 사용 해 왔으며 비동기 기능으로 작업하는 능력은 상당히 간단합니다.
그의 블로그 에서 nodeunit 을 사용할 준비가 된 좋은 연습이 있습니다 .
[ 참고 : API가 블로그 게시물 이후 변경된 - setUp(callback)
그리고 tearDown(callback)
당신은 당신의 설치 / 해체가 완료되면 호출 할 필요가 인수, 같은 콜백을 모두. ]