使用 Jasmine 测试 Javascript 函数



当我尝试测试一些javascript时,我遇到了问题,我不确定代码是否真的可测试,但是我很高兴知道如何使其可测试。

$("#Button").on('touchstart', () => testFunc());
function testFunc() {
button(true, userInfo, gameCode);
}

我想测试何时触摸按钮是否调用了testFunc。我使用Jasmine作为我的测试框架。

但是无论出于何种原因,当我尝试从Jasmine调用testFunc只是为了测试某些东西是否正常工作时,我都会收到错误

"ReferenceError: Can't find variable: testClass in file:///E:/Dokumenter/SemesterProjekt%20fun%20stuff/PRJ4Web/TankWebApplication/TankWebApplication/Test/Test.js (line 8)s"

我已经引用了该文件。所以我不确定发生了什么。

给我错误的测试代码

describe("Joystick test for functionallity",
function() {
beforeEach(function() {
});

it("All default values",
function() {
testFunc();
});
});

如何测试此代码?可以做到吗?

您的目标是查看该函数是否会在单击按钮时被调用,因此,您必须检查实际的函数调用toHaveBeenCalled茉莉花法。

调用函数本身没有任何意义(如您的示例所示)

你应该做这样的事情:

it('All default values', => {
spyOn(class.testFunc);
document.getElementById('Button').click();
expect(class.testFunc).toHaveBeenCalled();
}));
})

最新更新