Я довольно новыми для Жасмин, и я должен проверить несколько вызовов функции:Жасмин spyOn не работает
JS КОД
object1 = {
function1: function() {
// object1.function2 is a callback
object2.someFunction("called", object1.function2)
},
function2: function() {
// code to do stuff
}
}
TEST CODE
describe("test suite", function(){
it("test1", function(){
spyOn(object1, "function2");
object1.function1();
expect(object1.function2).toHaveBeenCalled();
});
});
Я пробовал это, но он терпит неудачу, и говорит: «Ожидаемая функция spy2 была вызвана». Может ли кто-нибудь помочь мне с этим? Благодаря
У вас есть единичный тест, который доказывает, что object2.someFunction в конечном итоге вызывает обратный вызов? Тест ЕДИНИЦЫ должен проверить ЕДИНИЦ. Итак, вы должны проверить, что object2.someFunction вызывает обратный вызов, который он передал, и затем вы должны написать тест, чтобы проверить, что функция1 вызывает object2.someFunction , конечно, для этого вам нужно передать объект2 в object1 как параметр либо для функции(), либо для конструктора object1. (Инъекция зависимостей) –
@DaveBush object2 - глобальный объект, поэтому не должно быть проблем с вложением зависимостей, и я уверен, что object2.someFunction вызывает обратный вызов. Однако было бы полезно, если бы вы могли сказать мне, как проверить это. – user3077887
@DaveBush Спасибо, я заметил, что object2.someFunction не вызывает обратный вызов. Я думал, что ошибся с тем, как я использовал spyOn. – user3077887