Для написания модульных тестовых примеров в жасмине для вышеуказанного фрагмента кода прежде всего инициализируйте связанные переменные фиктивными данными
startDate
с любой конкретной датой. scope.newBal
в виде пустого массива scope.actualBal
массив с двумя объектами, один из которых имеет дату до startDate, а другой после startDate
Затем вызывается функция, которая инкапсулирует вышеуказанный фрагмент кода. После этого вы можете сделать следующие утверждения * Массив
scope.newBal
содержит один элемент, который является объектом с датой публикации startDate
. scope.actualBal
не был изменен и является таким же, как инициализирован раньше.
Вот фрагмент кода, реализующий описанные выше шаги -
it('scope.myFunction() should copy all objects from scope.actualBal post startDate to scope.newBal', function() {
// setup - initialise scope variables
scope.startDate = new Date(2020, 03, 26); // year, 0-indexed month, date;
scope.newBal = [];
var balance_prior_date = {date:new Date(2020, 03, 25), bal:100.0};
var balance_post_date = {date:new Date(2020, 03, 27), bal: 50.0};
scope.actualBal = [balance_prior_date, balance_post_date];
// action - call encapsulating function
scope.myFunction();
// assert
// only relevant object shall be copied to newBal array
expect(scope.newBal.length).toBe(1);
expect(scope.newBal).toContain(balance_post_date);
// actualBal array should remain as it is
expect(scope.actualBal.length).toBe(2);
})