2016-06-11 3 views
0

재스민 노드로 몇 가지 약속을 테스트하고 싶습니다. 그러나 테스트가 실행되지만 0 개의 어설 션이 있다고합니다. 이게 내 코드 야, 뭔가 잘못 됐어? then 부분은 성공적으로 호출되었으므로 거기에 console.log가 있으면 호출됩니다. 코드 테스트에서 http 요청이 성공하면 어설 션이 올바르게 해석됩니다.재스민 노드 자바 스크립트 약속 테스트

describe('Unit tests', function() { 
it("contains spec with an expectation", function() { 
    service.getAllClients().then(function (res) { 
     expect("hello world").toEqual("hello world"); 
     done(); 
    }).catch(function (err) { 
     fail(); 
    }); 
}); 

});

+0

정의 된? [documentation] (http://jasmine.github.io/2.4/introduction.html#section-Asynchronous_Support)을 읽었습니까? 네가 알아야 할 모든 것이 거기있는 것 같아. –

+0

자스민 프레임 워크 자체에서 나온 것입니까? – patentul

+0

['fail' 예] (http://jasmine.github.io/2.4/introduction.html#section-Manually_failing_a_spec_with_ fail). 'done'에 대해서는 아무것도 보지 못했습니다. 그러나 다시, 문서를보십시오. 그것은 당신의 실수가 무엇인지 꽤 분명해야합니다. –

답변

2

당신은 당신이 it에 전달하는 콜백에 done 인수를 지정해야합니다, 그래서 재스민은 비동기 적으로 뭔가 테스트 알고 : 당신이 매개 변수, 재스민 당신을 위해 잠시 동안을 기다리는 것을 포함하면

it("contains spec with an expectation", function(done) { 
    // ... 

done으로 전화하면 완료되었을 때 알 수 있습니다.

done(); 

둘째, 비동기 테스트, 아마 done.fail의 전화와 함께 실패하는 것이 좋습니다 :`done`와`fail` 있습니다

done.fail(); 
+0

감사합니다. 혼자서 알아 냈습니다. 내가 필요한 답변이기 때문에 대답을 받아 들였습니다. – patentul