我是茉莉花js测试框架的新手,今天得到了一些奇怪的结果。
请参阅以下代码(search
是一个预先形成api请求并返回promise的函数):
it('should be able to search', function() {
search('string').done(function(result) {
expect(result.length).toBeGreaterThan(1); //true
console.log(result.lenght); // undefined
});
});
问题在于,由于我必须修复的一些错误,承诺的结果未定义,但测试标记为Success
。我发现这有误导性,如果我深入研究这一点,我会相信测试是成功的,但显然不是。这是预期的行为吗?
答案 0 :(得分:11)
你在console.log中有拼写错误(result.lenght)请试试这个。
it('should be able to search', function() {
search('string').done(function(result) {
expect(result.length).toBeGreaterThan(1); //true
console.log(result.length); // undefined
});
});
答案 1 :(得分:3)
对于测试异步函数,您的测试需要略有不同。从最新的Jasmine (2.0) documentation开始,异步测试编写如下:
beforeEach(function(done) {
setTimeout(function() {
// do setup for spec here
// then call done() in beforeEach() to start asynchronous test
done();
}, 1);
});
it('should be able to search', function(done) {
search('string').done(function(result) {
expect(result.length).toBeGreaterThan(1); //true
// call done() in the spec when asynchronous test is complete
done();
});
});