有什么区别
jasmine.createSpy( '的someMethod')
和
spyOn(someObject,'someMethod')
为什么要选择使用spyOn?
我的猜测是,第一个替代方法将匹配方法someMethod,无论它包含在哪个对象中,但spyOn只会匹配someObject中包含的对象.这样makeSpy只是一个更通用的匹配器?
Max*_*kyi 30
不同之处在于你应该在对象上有一个方法 spyOn
const o = { some(): { console.log('spied') } };
spyOn(o, 'some');
Run Code Online (Sandbox Code Playgroud)
而mock方法是为你创建的createSpy():
const o = {};
o.some = jasmine.createSpy('some');
Run Code Online (Sandbox Code Playgroud)
这样做的好处spyOn是你可以调用原始方法:
spyOn(o, 'some').and.callThrough();
o.some(); // logs 'spied'
Run Code Online (Sandbox Code Playgroud)
正如@estus所说,原始方法在测试后恢复spyOn.这应该在重新分配时手动完成.
| 归档时间: |
|
| 查看次数: |
9671 次 |
| 最近记录: |