我正在学习茉莉花,想知道以下测试是否有效?如果没有,有人可以解释为什么吗?我已经阅读了许多教程,找不到很好的解释,可以帮助我理解为什么我似乎无法正确编写像下面这样的测试。

// spec
describe("when cart is clicked", function() {
    it("should call the populateNotes function", function() {
        $("#show-cart").click()
        expect(populateNotes()).toHaveBeenCalled();
    })
})

// code
$("#show-cart").click(function() {
    populateNotes();
})

最佳答案

您需要做两件事,首先需要在单击之前监视该功能。通常,您会监视像这样的函数,它是对象的成员。 populateNotes在哪里定义?您需要以某种方式对其进行引用。

// This might work, if the function is defined globally.
spyOn(window, 'populateNotes');

// Then do your action that should result in that func being called
$("#show-cart").click();

// Then your expectation. The expectation should be on the function
// itself, not on the result. So no parens.
expect(window.populateNotes).toHaveBeenCalled();

关于javascript - 您需要 spy 来测试是否已在Jasmine中调用函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42963576/

10-11 06:41