2014-01-09 2 views
0

CoffeeScript 단원 테스트를 위해 chai.js와 함께 mocha를 사용하고 있습니다. 나는 커피 파일을 테스트 폴더에 컴파일하고 모카 테스트를 실행하기 위해 PhantomJS를 시작하는 불만스러운 과제를 가지고있다.Chai.js가 테스트에서 실패한 어설 션을 지정하지 않았습니다.

모든 것이 잘 작동하지만 chai.js는 어떤 테스트가 실패하고 있으며 예상 값과 실제 값이 무엇인지 나타내는 것만으로 테스트 케이스에서 어떤 어설 션이 전달되지 않는지 지정하지 않습니다. 어설 션 또는 적어도 실패한 어설 션의 인덱스를 인쇄하는 좋은 방법이 있습니까? 또한 chai.Assertion.includeStack을 켜기 만 JavaScript 파일에 CoffeeScript 테스트에 도움이되지 않는 행 번호 만 표시합니다.

FizzBuzzTest.coffee

fizz = new FizzBuzz() 

describe "Print numbers from 1 to 100", -> 
    it "First 10 digits from 1 to 5", -> 
     result = fizz.do() 
     arr = result.split(fizz.Delimiter) 
     expect(arr[0]).to.equal("1") 
     expect(arr[1]).to.equal("2") 
     expect(arr[2]).to.equal(fizz.Fizz) 
     expect(arr[3]).to.equal("3") # this assertion should fail 
     expect(arr[4]).to.equal(fizz.Buzz) 

실행 테스트

$ grunt test 

Running "mocha:run" (mocha) task 
Testing: Content/runner.html 

    Print numbers from 1 to 100 
    ✓ First 10 digits from 1 to 5 
    1) Last 10 digits from 95 to 100 
    ✓ Print FizzBuzz instead of number which is divisible by both 3 and 5 
    ✓ Check number 
    ✓ Check Fizz 
    ✓ Check Buzz 
    ✓ Check FizzBuzz 
    ✓ Check if > 100 then null 
    ✓ Check if < 1 then null 

    8 passing (113ms) 
    1 failing 

    1) Print numbers from 1 to 100 Last 10 digits from 95 to 100: 
    AssertionError: expected true to be false 
     at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:918 
     at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:1159 
     at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:3563 

>> 1/9 tests failed (0.11s) 
Warning: Task "mocha:run" failed. Use --force to continue. 

Aborted due to warnings. 

질문 : 어디 AssertionError를 대한 자세한 구체적으로 chai.js을 설정하는 좋은 방법이 있나요 일어난?

처럼 : AssertionError를 :. 라인에 기대 거짓으로 진실 예상 (편곡 [3]) to.equal ("3")

감사합니다. 아무도 커피 스크립트 코드 chai.Assertion.includeStack 작업 좋게 만들기 위해보다 정교한 해결책을 제공하지 않는 경우

답변

1

, 당신은 항상 expect 인터페이스의 일부 기능에 메시지를 전달할 수 있습니다

it("bluh", function() { 
    chai.expect(false).to.be.equal(true, "here"); 
}); 

"here" 문자열이 있습니다 어설 션이 실패 할 때 오류 메시지와 함께 출력 될 메시지. documentation을 살펴보십시오. 모든 기능이 선택적 메시지를 사용하는 것은 아니기 때문입니다. 먼저 to.be.true을 사용하려고했지만 true 메서드는 선택적 메시지를 사용하지 않습니다.

assert 인터페이스는 expect 인터페이스보다 많은 기능에 대한 선택적 메시지를 지원합니다.

+0

감사합니다. chai.js가 자동으로 어설 션을 추가 할 수 있다면 좋을 것입니다. –

관련 문제