首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ngRedux测试服务

如何使用ngRedux测试服务
EN

Stack Overflow用户
提问于 2017-05-25 21:23:00
回答 1查看 2.3K关注 0票数 2

我如何嘲笑ngRedux的getState :有因果报应的茉莉

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

代码语言:javascript
复制
this.ngRedux.getState()
EN

回答 1

Stack Overflow用户

发布于 2017-07-07 19:54:49

我通过监视getState()方法解决了这个问题:

代码语言:javascript
复制
spyOn(MockNgRedux.getInstance(), 'getState').and.returnValue({ ... });

我不知道这是否是一种方法,但它在我的情况下是有效的。不过,我不需要模仿任何花哨的状态修改,只需一个简单的getState()。

MockNgRedux@angular-redux/store模块的一部分。您的测试可能如下所示:

代码语言:javascript
复制
...
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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44181718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档