我有以下javascript -
function changeSelectBoxTitle() {
var value = $('#reason_id').find('option:selected').text();
$('#reason_id').attr('title', value);
}
$(document).on('change', '#reason_id', function() {
changeSelectBoxTitle();
});
基本上在更改选择框时,应调用changeSelectBoxTitle()函数。通过UI传递测试它。我试图通过茉莉花测试这个电话。 这是我的茉莉花测试 -
describe('when select box value is changed', function() {
it('calls the changeSelectBoxTitle function', function() {
spyOn(window, 'changeSelectBoxTitle');
var $dropDown = $('#reason_id');
$dropDown.change();
expect(window.changeSelectBoxTitle).toHaveBeenCalled();
});
});
一切看起来都不错。但测试失败了。我不知道为什么。有人能指出我正确的方向吗?
答案 0 :(得分:1)
正如@eck在您的问题下面的评论中所说,您的代码没有任何问题,测试失败是由于测试设置造成的。
将以下html元素添加到您的设置将允许测试通过
<select id="reason_id" class="" name="">
<option selected value="One">One</option>
<option value="Two">Two</option>
</select>
请参阅测试通过的jsfiddle。