我正在学习Jasmine,并且正在尝试测试一个复杂的排序功能。本质上,当单击 ('.overview_table_header') 类时,$(this) 会从列列表中填充列的名称:Likes、Checkins、State 等。
说“喜欢”被选中。然后它会对喜欢的列进行排序,向服务器发送一个 GET 请求。我想在 Jasmine 中测试这个过程,我什至不知道从哪里开始。你会如何写一个测试?我会告诉你我到目前为止。
要测试的Javascript:
$('.overview_table_header').click(function() {
header = $(this);
var col2 = $.trim($(this).text());
var sort2 = header.data('sort');
$.get("/search", { promotion_id: $("input[name=promotion_id]").val(), chag_col: $.trim($(this).text()), chag_sort: header.data('sort'), page: 1, q:$("input[name=q]").val(), etime: $("input[name=etime]").val(), stime: $("input[name=stime]").val() },
function(data) {
$('#pages').html(data.html);
$('#pagelink').html(data.page_links);
header.data('sort', data.sort);
if (data.sort == 'ASC') {
arrow = '<';
}
else {
arrow = '>';
}
$('span.arrow').html('');
header.siblings('.arrow').html(arrow);
$("input[name=chag_sort]").val(sort2);
$("input[name=chag_col]").val(col2);
console.log(data.sort);
}
);
});
我的茉莉花测试:
describe("Sort Feature", function() {
it("sorts columns of data based on user clicks", funciton(){
loadFixtures("home.html");
$(".overview_table_header")
});
});
我的夹具
<table>
<thead>
<tr>
<th class='col_1'>
<span class='overview_table_header'>Total Checkins</span>
</th>
<th class='col_2'>
<span class='overview_table_header'>Trending Place</span>
</th>
<th class='col_3'>
<span class='overview_table_header'>Top Place</span>
</th>
<th class='col_4'>
<span class='overview_table_header'>Top State</span>
</th>
</tr>
</thead>