15
假设我有一个函数如下用茉莉花来在功能上的变量窥探
function fun1(a) {
var local_a = a;
local_a += 5;
return local_a/2;
}
有没有一种方法来测试local_a的是它应该是什么(例如,在第一行的值码)?我对茉莉花有点新,所以我被卡住了。提前致谢。
假设我有一个函数如下用茉莉花来在功能上的变量窥探
function fun1(a) {
var local_a = a;
local_a += 5;
return local_a/2;
}
有没有一种方法来测试local_a的是它应该是什么(例如,在第一行的值码)?我对茉莉花有点新,所以我被卡住了。提前致谢。
不是。你可以做以下,但:中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();
我有点怀疑这是事实。但感谢您的详细解答。第二种方法对我来说是新的! – 2012-03-08 17:28:46
啊,很高兴你喜欢它。你可以在https://github.com/pivotal/jasmine/wiki/Spies和http://pivotal.github.com/jasmine/jsdoc/symbols/jasmine.Spy.html查看更多关于间谍的信息。 – ggozad 2012-03-08 17:34:54