Jasmine .calls.count 和 .calls.any 抛出错误
Jasmine .calls.count and .calls.any throwing error
我正在尝试测试 .calls.count()
和 .calls.any
,我尝试了此 link Jasmine test cases
中的以下代码
describe("A spy", function() {
var foo, bar = null;
beforeEach(function() {
foo = {
setBar: function(value) {
bar = value;
}
};
spyOn(foo, 'setBar');
});
it("tracks if it was called at all", function() {
expect(foo.setBar.calls.any()).toEqual(false);
foo.setBar();
expect(foo.setBar.calls.any()).toEqual(true);
});
it("tracks the number of times it was called", function() {
expect(foo.setBar.calls.count()).toEqual(0);
foo.setBar();
foo.setBar();
expect(foo.setBar.calls.count()).toEqual(2);
});
});
但这会引发错误:
TypeError: 'foo.setBar.calls.any' is not a function
和
TypeError: 'foo.setBar.calls.count' is not a function
我检查了语法,网上到处都是一样的。怎么了?
有点愚蠢的问题,但您确定您没有不小心使用 Jasmine 1.3 吗? calls
在那里也是有效的 属性,但它还没有 any()
和 count()
方法,您在 2.0 文档中引用了这些方法。
(我在从1.3迁移到2.0的过程中遇到过很多类似的错误,因为语法非常相似,所以错误不是一眼就能看出来的。)
我遇到了类似的问题,然后查了一下这个。上面的答案是正确的,我设法通过在我的 testem.json 中明确包含对 "jasmine2" 的引用来修复它,而不仅仅是 "jasmine":
{
"framework": "jasmine2",
"src_files": [
"filePath1.js",
"filePath2.js",
"filePathEtc.js"
]
}
我正在尝试测试 .calls.count()
和 .calls.any
,我尝试了此 link Jasmine test cases
describe("A spy", function() {
var foo, bar = null;
beforeEach(function() {
foo = {
setBar: function(value) {
bar = value;
}
};
spyOn(foo, 'setBar');
});
it("tracks if it was called at all", function() {
expect(foo.setBar.calls.any()).toEqual(false);
foo.setBar();
expect(foo.setBar.calls.any()).toEqual(true);
});
it("tracks the number of times it was called", function() {
expect(foo.setBar.calls.count()).toEqual(0);
foo.setBar();
foo.setBar();
expect(foo.setBar.calls.count()).toEqual(2);
});
});
但这会引发错误:
TypeError: 'foo.setBar.calls.any' is not a function
和
TypeError: 'foo.setBar.calls.count' is not a function
我检查了语法,网上到处都是一样的。怎么了?
有点愚蠢的问题,但您确定您没有不小心使用 Jasmine 1.3 吗? calls
在那里也是有效的 属性,但它还没有 any()
和 count()
方法,您在 2.0 文档中引用了这些方法。
(我在从1.3迁移到2.0的过程中遇到过很多类似的错误,因为语法非常相似,所以错误不是一眼就能看出来的。)
我遇到了类似的问题,然后查了一下这个。上面的答案是正确的,我设法通过在我的 testem.json 中明确包含对 "jasmine2" 的引用来修复它,而不仅仅是 "jasmine":
{
"framework": "jasmine2",
"src_files": [
"filePath1.js",
"filePath2.js",
"filePathEtc.js"
]
}