我如何模拟对单例方法的调用,例如:
Foo.get().getBar();
使用
模拟Foo.getBar();
似乎很简单
jasmine.createSpyObj(Foo, ['get']);
Foo.get.and.returnValue();
但是我一直在研究依赖注入(inject),但无法让它正常工作。 FWIW: getBar
返回一个 promise ,所以我真的想模拟 Foo.get().getBar().then()
我想它一定是这样的
Foo.get.getBar.and.callFake(() => { return deferred.promise; });
最佳答案
你必须这样做:
describe('Foo.get().getBar()',function(){
it('is happy',function(){
var Foo = jasmine.createSpyObj('Foo', ['get']);
console.log(Foo);
Foo.get.andReturn({
getBar: function() {
return 'happy';
}
});
expect(Foo.get().getBar()).toBe('happy');
});
});
希望有帮助!!!
关于javascript - Jasmine:模拟单例的内部方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38321101/