qunit中expect()的jasmine 2.0版本
jasmine 2.0 version of expect() in qunit
在QUnit中,您可以指定测试中预期运行的断言数量
即。expect(2)
在Jasmine 2.0中有办法做到这一点吗?尽管他们的文档很清楚,但我似乎在任何地方都找不到详尽的API列表。
我想运行多个异步测试,而不必嵌套它们。例如,第三次测试应该可靠地是最后一次。但是,如果前两个完全失败,则指示灯仍然是绿色的,因为调用了done()
。
it("Should run callbacks with correct data", function(done){
//expect(3); //QUnit syntax
test.fastResponse(function(data){
expect(data).toEqual({a:1, b:2});
});
test.fastResponse(function(data){
expect(data).toEqual({a:1, b:2});
});
test.slowResponse(function(data){
expect(data).toEqual({a:1, b:2});
//This should fail if the other two tests didn't run
done();
});
});
我建议添加一个callCount
变量,并在每次调用回调时将其递增1。然后您可以在呼叫done()
之前使用expect(callCount).toBe(x)
。
另一方面,你也可以使用间谍来实现这一点:
it("Should run callbacks with correct data", function(done){
var callback = jasmine.createSpy("callback");
var actuallyDone = function() {
expect(callback.calls.count()).toBe(2);
expect(callback.calls.all()[0].args[0]).toEqual({a:1, b:2});
expect(callback.calls.all()[1].args[0]).toEqual({a:1, b:2});
done();
};
test.fastResponse(callback);
test.fastResponse(callback);
test.slowResponse(function(data){
expect(data).toEqual({a:1, b:2});
actuallyDone();
});
});
相关文章:
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Chrome加载旧版本的Javascript文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 使用jasmine模拟对服务器的调用
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何设置jsfiddle's的javascript版本
- 为什么jasmine期望不验证是否抛出了错误
- 模拟chrome.storage.local函数使用Jasmine
- 同一HTML页面中的两个不同版本的JQuery
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 函数在promise被解析后被调用,但Jasmine未通过测试.为什么?
- 有没有一种方法可以获得three.js的最小/lite版本
- Node和Nodejs版本不同
- 为什么spyOn"停止函数“”的所有执行;Jasmine(要求澄清Jasmine 2.2间谍文件)
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 如何在HTML中指定Javascript的版本
- 如果“.jshintrc”和“karma.conf.js”,Jasmine“test”文件夹的一部分受到版本控制
- 如何在Jasmine.js 2.0.0版本中使用fixture
- qunit中expect()的jasmine 2.0版本