自2.x起,异步测试的语法发生了变化,documentation不明确。
有人可以澄清我如何执行某些代码,阻止3秒,然后使用新语法运行测试条件?
it('should update the table when new data is provided', function() {
var newData = ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23\nX-Y,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
fixture.datum(csv).call(fp);
expect(fp.dataset()).toEqual(csv);
fp.dataset(newData);
expect(fp.dataset()).toEqual(newData);
//block for 3 seconds
expect(fixture.selectAll(".row").nodes().length).toBe(3);
});
答案 0 :(得分:0)
已完成需要作为参数传递给规范, done()需要作为 setTimeout()<中的最后一个语句调用/ em>块。
如果异步规范总共超过5秒,它将失败,请参阅jasmine docs摘录以获取更多信息:
默认情况下,jasmine将等待5秒钟,以便在导致超时失败之前完成异步规范。如果在调用done之前超时到期,则当前规范将被标记为失败,并且套件执行将继续,就像调用done一样。
如果特定规格应该更快失败或需要更多时间,可以通过向其传递超时值等来调整,等等。
it('should update the table when new data is provided', function(done) {
var newData = ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23\nX-Y,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
fixture.datum(csv).call(fp);
expect(fp.dataset()).toEqual(csv);
fp.dataset(newData);
expect(fp.dataset()).toEqual(newData);
//block for 3 seconds, then execute expect
setTimeout(function() {
expect(fixture.selectAll(".row").nodes().length).toBe(3);
done(); //dont forget!!
}, 3000);
});