2012-05-30 2 views
4

Я немного смущен шпионажем о жасмине. У меня есть такой код, но я не уверен, как его протестировать.Как проверить, что метод был вызван в жасмине?

var params = { 
    param1: "", 
    param2: "link", 
    param3: "1", 
    param4 : "1" 
}; 
var func = new myFunction(params); 
func.doSomething(); 

Как проверить, что func.doЧто-то было вызвано.

Это тест, который я написал так далеко

describe("Library", function() { 

    beforeEach(function() { 
    }); 

    it("should include correct parameters", function() { 
     expect(params.param1).toEqual(""); 
     expect(params.param2).toEqual("link"); 
     expect(params.param3).toEqual("1"); 
     expect(params.param4).toEqual("1"); 
    }); 

    it("should show that method doSomething is called with zero arguments", function() { 
      // I'm not sure how to write test for this. 
    }); 
}); 

ответ

5

Я думаю, что вы хотите использовать toHaveBeenCalledWith():

it("should show that method doSomething is called with zero arguments", function() { 
    // Ensure the spy was called with the correct number of arguments 
    // In this case, no arguments 
    expect(func.doSomething).toHaveBeenCalledWith(); 
}); 
+0

Спасибо за ваш ответ. Это то, что я сделал. \t spyOn (func, "doSomething"); func.doSomething(); ожидать (func.doSomething) .toHaveBeenCalled(); Но у меня есть глупый вопрос, не означает ли это, что func.doSomething() вызывается внутри теста, а не проверяет поведение реального кода? Я довольно новичок в этом, поэтому простите меня за глупый вопрос. – toy

Смежные вопросы