【发布时间】:2015-09-30 15:20:43
【问题描述】:
Jasmine 采用这种时髦的方法,不会在测试中的第一次失败时停止。一般来说,这很好,但并非没有问题。我想知道这样的场景的最佳做法是什么:
it('should process async results nicely', function (done) {
this.getJSON('something', function(response) {
expect(response.status).toEqual('ok');
expect(response.data).toBeDefined();
expect(response.data.length).toEqual(5);
done();
}
}
这里的问题是,如果 response.data 未定义,这将使整个测试套件崩溃。再说一次,在测试用例中编写条件通常是不受欢迎的。对于这种情况,我还有其他选择吗?鉴于大多数测试的异步性质,这是一个非常常见的问题。
【问题讨论】:
-
这个具体情况可以表示为
expect(response.data && response.data.length).toEqual(5),不过@Mbielski的回答很好。
标签: node.js testing jasmine conditional