Я работаю в обратном порядке в жизненном цикле системы. Несколько месяцев назад я написал большую библиотеку javascript. Затем мне пришлось сделать все это объективно, и теперь я должен написать для него единичные тесты. Я использую Maven и имею jasmine-maven-plugin
в моем pom.xml. Проблема, с которой я сталкиваюсь, - это то, что я должен писать тесты и сколько.Что я должен писать модульные тесты для Jasmine?
Этот первый пример прост. Функция принимает строку и возвращает ее с заглавной буквой.
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);
},
Любые разъяснения очень ценятся.
Отличный ответ спасибо, я очень ценю объяснение! – Patrick