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();
});
});
});
茉莉花告訴我,它期望間諜數據表被調用。 我似乎沒有正確獲取表格元素。任何建議表示讚賞。