我如何嘲笑ngRedux的getState :有因果报应的茉莉
例如,我的服务通过ngRedux从商店获取值。
this.ngRedux.getState()发布于 2017-07-07 19:54:49
我通过监视getState()方法解决了这个问题:
spyOn(MockNgRedux.getInstance(), 'getState').and.returnValue({ ... });我不知道这是否是一种方法,但它在我的情况下是有效的。不过,我不需要模仿任何花哨的状态修改,只需一个简单的getState()。
MockNgRedux是@angular-redux/store模块的一部分。您的测试可能如下所示:
...
import {MockNgRedux, NgReduxTestingModule} from '@angular-redux/store/lib/testing';
describe('MyTest', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
...
imports: [
...
NgReduxTestingModule
],
providers: [
...
MockNgRedux
]
})
.compileComponents();
}));
it('does something', () => {
// set up
spyOn(MockNgRedux.getInstance(), 'getState').and.returnValue({here: 'be my mock store'});
spyOn(MockNgRedux.getInstance(), 'dispatch').and.stub();
....
expect(MockNgRedux.getInstance().dispatch).toHaveBeenCalledWith(something);
});
});这里有一个文档的链接:https://angular-redux.github.io/store/classes/mockngredux.html
https://stackoverflow.com/questions/44181718
复制相似问题