[英]Jasmine Unit Testing: How can I spy on Function.prototype.call() in a function parameter that is passed to my method under test?
我想使用茉莉花来测试需要Function参数的函数
var functionUnderTest = function(functionParameter) {
functionParameter.call();
}
上面的functionParameter
是一个Javascript函数,调用方法是Function.prototype上定义的方法。 如何监视调用属性以确保其被调用?
以下似乎不起作用
it("should call the functionParameter passed to it", function() {
var mockFunction = function() {};
spyOn(mockFunction, 'call');
functionUnderTest(mockFunction);
expect(mockFunction.call).toHaveBeenCalled();
}
因为它导致:
Error: Expected spy call to have been called.
大概是因为茉莉间谍拥有它自己的call()函数。
我也试过了,但是它也不起作用:
it("should call the functionParameter passed to it", function() {
var mockFunction = function() {};
spyOn(mockFunction.prototype, 'call');
functionUnderTest(mockFunction);
expect(mockFunction.prototype.call).toHaveBeenCalled();
}
这次,错误是:
TypeError: Cannot read property 'slice' of undefined
调用栈指向:
Expectation.toHaveBeenCalled
我想做的事可能吗? 我已经呆了几个小时了,似乎我对茉莉的理解缺少了一些基本知识。
根据Bergi的建议,以下作品:
it("should call the functionParameter passed to it", function() {
var mockFunction = jasmine.createSpy('mockFunction')
functionUnderTest(mockFunction);
expect(mockFunction).toHaveBeenCalled();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.