首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型'TestHotObservable‘中缺少“Subject<any>”类型中的以下属性:观察者、已关闭的、isStopped、hasError和其他5个

类型'TestHotObservable‘中缺少“Subject<any>”类型中的以下属性:观察者、已关闭的、isStopped、hasError和其他5个
EN

Stack Overflow用户
提问于 2019-03-01 12:26:39
回答 1查看 1.4K关注 0票数 2

我正在尝试实现简单的单元测试的效果。我正在尝试实现这个示例中的代码:https://github.com/ngrx/platform/blob/master/docs/effects/testing.md,但不幸的是,由于authActions,我无法编译代码。这一行:

代码语言:javascript
复制
authActions = hot('--a-', { a: action });

给了我编译错误,比如:

类型'TestHotObservable‘缺少’Subject‘类型中的下列属性:观察者、关闭的、isStopped、hasError等。

这里是代码片段:

代码语言:javascript
复制
import { AuthEffects } from "./auth.effects";
import { Subject } from 'rxjs';
import { TestBed } from '@angular/core/testing';
import { provideMockActions } from '@ngrx/effects/testing';
import * as AuthActions from './auth.actions';
import { hot, cold } from 'jasmine-marbles';
import { RouterTestingModule } from '@angular/router/testing';

describe('AuthEffects', () => {
    let authEffects: AuthEffects;
    let authActions: Subject<any>;

    beforeEach(() => {
        TestBed.configureTestingModule({
            imports: [
                RouterTestingModule
            ],
            providers: [
                AuthEffects,
                provideMockActions(() => authActions)
            ]
        });

        authEffects = TestBed.get(AuthEffects);
    });

    it('effect test', () => {
        let username = '';
        let password = '';
        let role = 'PARENT';
        const action = new AuthActions.TrySignin({ username, password, role });
        const completion = new AuthActions.SigninUser()

        authActions = hot('--a-', { a: action });
        const expected = cold('--b', { b: completion });

        expect(authEffects.authSignin).toBeObservable(expected);
    })
})

既然我是新手,我就没有主意了。这里可能出了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2019-03-01 18:52:48

您必须将操作定义为可观察的- https://ngrx.io/guide/effects/testing

代码语言:javascript
复制
let actions: Observable<any>;

...

 it('should work', () => {
    actions = hot('--a-', { a: action });;
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54944655

复制
相关文章

相似问题

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