我在系统生命周期中反向工作。几个月前,我编写了一个大型 javascript 库。然后我必须让它变得客观,现在,我必须为它编写单元测试。我正在使用 Maven 并jasmine-maven-plugin
在我的 pom.xml 中有。我遇到的问题是我应该为什么编写测试,以及测试的数量。
第一个例子很简单。该函数接受一个字符串并返回它的首字母大写。
var toolsFn = {
capitaliseFirstLetter: function(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
},
所以我的单元测试它:
describe("toolsFn - capitaliseFirstLetter", function() {
it("capitalises the first letter of a given string", function() {
expect(toolsFn.capitaliseFirstLetter("hello World!")).toBe("Hello World!");
});
});
但是,我不确定我应该为我的许多其他方法做什么。它们中的大多数处理 html 代码,例如更改选项卡、显示通知、禁用/启用控件。我应该只期待这种方法toHaveBeenCalled
还是还有更多呢?
请检查以下更改选项卡、加载给定选项卡和隐藏通知的示例;
tabsFn = {
changeTab: function() {
$(tabButtons).addClass('inactive');
$(tabContent).hide();
$(this).removeClass('inactive');
var tab = $(this).attr('tab');
$('.tab-content-' + tab).show();
return false;
},
loadTab: function(tab) {
$(tabButtons).addClass('inactive');
$(tabContent).hide();
$('[tab~="' + tab + '"]').removeClass('inactive').removeAttr('disabled');
$('.tab-content-' + tab).show();
},
messageFn = {
hideNotification: function(time) {
$(messageFn.notificationBar).stop(true, true).fadeOut(time);
},
任何澄清都非常感谢。