我正在使用Jasmine对一些表列排序功能进行单元测试。出现了一个问题,我发现第一次点击后我的列的顺序错误(Z-A而不是A-Z)。我使用浏览器的调试器来检查html并确认该列实际上是错误排序的。作为独立性的测试,我在前一个块的末尾添加了一个额外的点击,令人惊讶的是这解决了这个问题。重新排序我的测试以避免对方的点击也有效。
这反驳了the assertion“灯具容器在测试之间自动清理”。任何人都可以验证这个错误或解释我误解的内容吗?
describe('gem bootstrap_sortable_rails', function() {
var header;
beforeEach(function() {
setFixtures('<table class="sortable"><thead><tr><th data-sortkey="0">Name</th></tr></thead>' +
'<tbody><tr><td data-value="Harrow Baptist Church"><a href="/organizations/1">Harrow Baptist Church</td></tr>' +
'<tr><td data-value="Human Touch Worldwide"><a href="/organizations/1">Human Touch Worldwide</td></tr></tbody></table>');
header = $('th');
});
describe('when clicking on the tableheader', function() {
it('inserts an arrow after click', function() {
header.click();
expect(header.find('span')).toHaveClass('arrow');
header.click(); // added to make the test below pass!
});
it('sorts A-Z then Z-A', function() {
header.click();
expect($('td').first()).toHaveText('Harrow Baptist Church');
header.click();
expect($('td').first()).toHaveText('Human Touch Worldwide')
});
});
});
ruby 1.9.3, rails 3.2.14, jasmine-jquery-rails 1.5.9
我刚刚升级到jasmine 2.0和jasmine-jquery-rails 2.0.2,没有区别。