Ответ 1
Жасмин 2.0 изменил некоторые синтаксисы шпиона. jasmine 2.0 docs
spyOn(Math, 'random').and.returnValue(1);
Начинающий с Жасмин, очень первая попытка с Jasmine Spies. Я думал, что я подражал формату показанному здесь (поиск: "andReturn" ), но я получаю сообщение об ошибке, которое я не могу решить
TypeError: Object function () {
callTracker.track({
object: this,
args: Array.prototype.slice.apply(arguments)
});
return spyStrategy.exec.apply(this, arguments);
} has no method 'andReturn'
Не знаю, что я делаю неправильно. Здесь мой Spec:
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);
}
}
Спасибо за помощь!!!
Жасмин 2.0 изменил некоторые синтаксисы шпиона. jasmine 2.0 docs
spyOn(Math, 'random').and.returnValue(1);
попробуйте это
spyOn (Math, 'random'). and.returnValue(1);
Я сделал тест на жасмин, где я показываю такой макет. andReturn, похоже, работает. http://jsfiddle.net/LNWXn/
it("has a value of 1 with and return", function() {
spyOn(Math, 'random').andReturn(1);
expect(Math.random()).toBe(1);
});
Вы должны иметь в виду, что он только издевался над темой теста. Вот один с вашим примером, который, кажется, проходит. http://jsfiddle.net/LNWXn/2/
Надеюсь, это помогло!
использовать and.returnValue() insted ofRemurn()