Одна из возможных проблем с вашими тестами состоит в том, что вы не указали, что должен вызываться оригинальный метод.Правильное поведение будет следующим (обратите внимание на «andCallThrough»):
describe("Person", function() {
it("calls the sayHello() function", function() {
var fakePerson = new Person();
spyOn(fakePerson, "sayHello").andCallThrough();
fakePerson.helloSomeone("world");
expect(fakePerson.sayHello).toHaveBeenCalled();
});
});
Вы можете увидеть страницу документации Jasmine для получения дополнительной информации о другой возможности: https://github.com/pivotal/jasmine/wiki/Spies
Редактировать: Быстрый просмотр документации Жасмин-Синон вызывает следующее:
Предупреждение
Жасмин-Синон в настоящее время перезаписывает любые сопоставители Жасмин с тем же именем, используемые для его собственных шпионских функций.Я планирую разрешить их дальнейшее сохранение в будущем.
Переписаны собственные средства сопоставления с жасмином:
- toHaveBeenCalled()
- toHaveBeenCalledWith ()
Если вы хотите использовать Jasmine-Sinon, вы должныиспользуйте их API, а не Jasmine.
Редактировать : По состоянию на Фев 2012 :
Вы также можетеиспользуйте шпионов Жасмин рядом с вашими шпионами Синона.Jasmine-Sinon определит, что вы используете, и использует соответствующий механизм сопоставления.