我有一个测试规范,我试图在该规范上测试调用按钮时是否调用了函数。
这是正在测试的javascript:
var launchTest = function () {
window.open("test.asp", "test", "resizable=1,scrollbars=yes,status=no,toolbar=no,location=no,menu=no");
};
//launch test window when btn is clicked
$('#testBtn').click(function () {
launchTest ();
});
这是茉莉花:
describe('launchTest', function () {
it("opens a window", function () {
var windowSpy = spyOn(window, "open");
launchTest();
expect(windowSpy).toHaveBeenCalledWith("test.asp", "test", "resizable=1,scrollbars=yes,status=no,toolbar=no,location=no,menu=no");
});
});
describe('testBtn click event', function () {
it('should call launchTest.', function () {
$('body').append('<input type="button" id="testBtn" />');
var launchSpy = spyOn(window, 'launchTest');
$('#testBtn').trigger('click');
expect(launchSpy).toHaveBeenCalled();
});
});
此操作始终失败,提示“已调用预期的间谍launchTest”。
正如标题中所述,我正在使用jasmine-jquery。我知道如何测试点击事件是否已触发,但不测试定义的点击事件中调用的函数。