Можете ли вы, ребята, помочь мне написать тестовые случаи в Жасмин для этого кода ниже - PullRequest
0 голосов
/ 23 апреля 2020

Здесь у меня есть два массива, и мне нужно вставить объекты в массив из другого массива. Ниже мой код

scope.newBal=[];
scope.actualBal=[
{date:2020-02-04,
bal:100.0},
{date:2020-02-09,
bal:530.0},
{date:2020-02-16,
bal:190.0},
{date:2020-02-23,
bal:4560.0}];

scope.newBal=scope.actualBal.filter(b => b.date.isAfter(startDate));

In the above code I had stored the objects in *newBal* array, after the startDate from *actualBal* array. 
So in my *newBal* array I've the below data:-
scope.newBal=[{date:2020-02-16, bal:190.0}, {date:2020-02-23, bal:4560.0}];

But i'm unable to write the test cases of above code in jasmine, So can you guys help me in this.


1 Ответ

1 голос
/ 26 апреля 2020

Для написания модульных тестовых примеров в жасмине для вышеуказанного фрагмента кода прежде всего инициализируйте связанные переменные фиктивными данными

  • 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);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...