假设我有如下功能

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

有没有一种方法可以测试local_a的值是否正确(例如,在第一行代码中)?我对Jasmine有点陌生,所以被困住了。提前致谢。

最佳答案

并不真地。您可以执行以下操作:

测试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();

关于javascript - 使用Jasmine监视函数中的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9619500/

10-12 20:11