Javascript 茉莉花对象“;没有方法';andReturn'”;
茉莉花初学者,茉莉花间谍的第一次尝试。我以为我是在模仿这种格式(搜索:“andReturn”),但我得到了一个我无法解决的错误:Javascript 茉莉花对象“;没有方法';andReturn'”;,javascript,unit-testing,tdd,jasmine,Javascript,Unit Testing,Tdd,Jasmine,茉莉花初学者,茉莉花间谍的第一次尝试。我以为我是在模仿这种格式(搜索:“andReturn”),但我得到了一个我无法解决的错误: TypeError: Object function () { callTracker.track({ object: this, args: Array.prototype.slice.apply(arguments) }); return spyStrategy.exec.ap
TypeError: Object function () {
callTracker.track({
object: this,
args: Array.prototype.slice.apply(arguments)
});
return spyStrategy.exec.apply(this, arguments);
} has no method 'andReturn'
不知道我做错了什么。这是我的规格:
describe('Die', function() {
it('returns a value when you roll it', function() {
var die = Object.create(Die);
spyOn(Math, 'random').andReturn(1);
expect(die.roll()).toEqual(6);
});
});
以及相应的JS:
var Die =
{
roll: function() {
return Math.floor(Math.random() * 5 + 1);
}
}
谢谢你的帮助 我做了一个茉莉花测试,在那里我展示了这种模拟。安德烈·图恩似乎在工作 您必须记住,它只在测试范围内被模拟。 这里有一个与你的例子,似乎通过
希望这有帮助 jasmine 2.0更改了一些间谍语法 试试这个 spyOn(数学,“随机”)和.returnValue(1)
使用and.returnValue()代替andReturn()谢谢!实际上,我认为问题可能与我使用dist2.0有关。我在1.3.1中重新创建了精确的测试,它们工作得很好。
通过将spy与and.returnValue链接,所有对函数的调用都将返回一个特定值。
是!看起来andReturn是now and.returnValue。最好在答案中提供代码,而不仅仅是链接到文档。这是当前的2.0.0 jasmine语法
it("has a value of 1 with and return", function() {
spyOn(Math, 'random').andReturn(1);
expect(Math.random()).toBe(1);
});
spyOn(Math, 'random').and.returnValue(1);