gpt4 book ai didi

angular - 我如何使用 ngRedux 测试服务

转载 作者:行者123 更新时间:2023-12-02 03:55:10 24 4
gpt4 key购买 nike

我如何使用 karma jasmine 模拟 ngRedux 的 getState

例如,我的服务通过 ngRedux 从商店获取值(value)。

this.ngRedux.getState()

最佳答案

我通过监视 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

关于angular - 我如何使用 ngRedux 测试服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44181718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com