我正在尝试编写一个基本的 ngrx 效果测试。但是我不断收到错误,因为 TypeError: expect(...).toBeObservable is not a function。

这是一个使用 Angular 7 的新项目设置。我以前在 angular 4 中运行的项目没有问题。

最初认为这可能与软件包有关,因此将所有软件包升级到最新,但还没有运气。

我试图测试一个非常简单的 observable,如 expect(effects.test$).toBeObservable(5);但它给出了同样的错误。正如标题中提到的,我使用的是 jasmine-marbles,版本是 0.4.1。

最佳答案

您需要在每个或 toBeObservable 不被定义之前初始化测试调度程序并添加匹配器:

import { addMatchers, initTestScheduler } from 'jasmine-marbles';

beforeEach(() => {
  ...
  initTestScheduler();
  addMatchers();
});

10-08 08:37