0
我对Jasmine是完全陌生的,不确定是否正确地处理这个问题。我想测试在我的表dom元素上调用DataTable()
方法。这应该发生在成功的Ajax响应上。但是,它在ajax调用中初始化,我不知道如何测试。使ajax调用的javascript函数是updateResults()
。Jasmine - 从Ajax成功的内部DOM元素上调用测试方法
这是我试过的。
describe('#ajax', function() {
var leaderboards, spyOnAjax;
var formActionUrl = '/jasmine_test_url';
beforeEach(function() {
setFixtures('<div class="lb-container">' +
'<form class="leaderboard" action="' + formActionUrl + '">' +
'<input type="submit">' +
'</form>' +
'<div id="result-box">' +
'<table class="table-leaderboard"></table> </div>' +
'</div>');
leaderboards = new LeaderBoards($('div.lb-container')[0]);
spyOnAjax = spyOn($, 'ajax').and.callThrough();
leaderboards.updateResults();
});
describe('when updateResults method is called on leaderboards object', function() {
it('initializes DataTables', function() {
var table = $('table.table-leaderboard');
spyOn(table, 'DataTable');
expect(table.DataTable).toHaveBeenCalled();
});
});
});
茉莉花告诉我,它期望间谍数据表被调用。 我似乎没有正确获取表格元素。任何建议表示赞赏。