我正在寫javascript測試用例使用茉莉花,但是當我創建spyOn函數和調用loginSubmit它給我錯誤「TypeError:e是undefined」在該特定功能。spyOn與javascript中的參數化函數。給我錯誤TypeError:e是undefined
我的測試代碼如下:
describe('this will test for html fixtures and login function called', function(){
beforeEach(function() {
jasmine.getFixtures().fixturesPath = 'base/spec/javascripts/fixtures';
loadFixtures('login.fixtures.html');
});
it('expect fixtures to exist', function() {
expect('form').toExist();
expect('form').toContainElement('button');
});
spyOn(window, $.fn.loginSubmit());
$('.submit').click();
it('expect function to be called', function(){
expect(loginSubmit).toBeCalled();
});
});
和Javascript代碼如下:
$.fn.loginSubmit = function(e) {
e.preventDefault();
// my whole functionality
};
請告訴我,什麼是錯的這個代碼,並建議我,如果我做錯了什麼。我是測試前端JavaScript的新手。
謝謝Nathan的回覆。實際上,loginSubmit函數在表單提交時被調用。那麼我如何將這個e(事件)傳遞給spyOn函數,這樣測試用例就可以工作,否則我會做其他的事情嗎? –