Использование Жасмин для слежки за переменными в функции - PullRequest
19 голосов
/ 08 марта 2012

Предположим, у меня есть функция следующим образом

function fun1(a) {
  var local_a = a;
  local_a += 5;
  return local_a/2;
}

Есть ли способ проверить, является ли значение local_a таким, каким оно должно быть (например, в первой строке кода)? Я немного новичок в Жасмин, поэтому застрял. Заранее спасибо.

1 Ответ

16 голосов
/ 08 марта 2012

Не совсем.Однако вы можете сделать следующее:

Проверить результат fun1():

expect(fun1(5)).toEqual(5);

Убедитесь, что он действительно вызван (полезно, если это происходит через события), а также протестировать результат:

var spy = jasmine.createSpy(window, 'fun1').andCallThrough();
fire_event_calling_fun1();
expect(spy).toHaveBeenCalled();
expect(some_condition);

Действительно воспроизвести всю функцию, проверяя промежуточные результаты:

var spy = jasmine.createSpy(window, 'fun1').andCallFake(function (a) {
  var local_a = a;
  expect(local_a).toEqual(a);
  local_a += 5;
  expect(local_a).toEqual(a+5);
  return local_a/2;
});
fun1(42);
expect(spy).toHaveBeenCalled();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...