dnc*_*253 13 javascript unit-testing jasmine
我有一个简单的测试套件,it
里面有一个功能.我想看看在我调用的函数中是否调用了某个函数,所以我有这样的东西:
describe("doStuff", function () {
var foo = new Foo();
spyOn(foo, "doOtherStuff");
foo.doStuff(true);
it("should do stuff and other stuff", function() {
expect(foo.stuffDone).toBe(true);
expect(foo.doOtherStuff).toHaveBeenCalled();
});
});
Run Code Online (Sandbox Code Playgroud)
但是,这给了我错误: Expected a spy, but got Function.
环顾四周之后,我看到所有的例子都有spyOn
了beforeEach
.所以,我把测试改为:
describe("doStuff", function () {
var foo = new Foo();
beforeEach(function() {
spyOn(foo, "doOtherStuff");
foo.doStuff(true);
});
it("should do stuff and other stuff", function() {
expect(foo.stuffDone).toBe(true);
expect(foo.doOtherStuff).toHaveBeenCalled();
});
});
Run Code Online (Sandbox Code Playgroud)
这很有效.我是很新,茉莉,所以我可能只是缺少明显的东西,但我只是想知道为什么它必须是在beforeEach
为spyOn
工作.只使用它很容易beforeEach
,但我想更好地了解正在发生的事情.谢谢.
And*_*eas 11
这只是因为Jasmine在不同的闭包中运行Specs.的describe
和it
呼叫唯一寄存器,稍后添加到队列,然后执行由茉莉回调.茉莉花总是清理间谍......
但你也可以添加spyOn
到it
回调.
归档时间: |
|
查看次数: |
8530 次 |
最近记录: |