Типу «TestHotObservable» не хватает следующих свойств из типа «Тема <any>»: наблюдатели, закрытый, isStopped, hasError и еще 5 - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь реализовать простой модульный тест на эффект.Я пытаюсь реализовать код из этого примера: https://github.com/ngrx/platform/blob/master/docs/effects/testing.md, но, к сожалению, я не могу скомпилировать код из-за authActions.Эта строка:

authActions = hot('--a-', { a: action });

Дала мне ошибку компиляции, например:

Типу 'TestHotObservable' не хватает следующих свойств из типа 'Тема': наблюдатели, закрыто, isStopped, hasError,и еще 5.

Вот фрагмент кода:

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);
    })
})

Поскольку я новичок в этом, у меня нет идей.Что здесь может быть не так?

1 Ответ

0 голосов
/ 01 марта 2019

Вы должны определить действия как наблюдаемые - https://ngrx.io/guide/effects/testing

let actions: Observable<any>;

...

 it('should work', () => {
    actions = hot('--a-', { a: action });;
  });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...