rxjs-marbles 测试没有任何期望

Posted

技术标签:

【中文标题】rxjs-marbles 测试没有任何期望【英文标题】:rxjs-marbles testing has no expectations 【发布时间】:2019-04-13 19:36:30 【问题描述】:

我使用 rxjs-marbles 在我的 Angular 7 应用程序中测试 observables。但看起来m.expect 不像预期那样被jasmine 识别。

我有以下测试:

it('should see expectations', marbles(m => 
  const source: Observable<Message> = m.hot('^a--b--c');
  m.expect(source).toBeObservable('-a--b--c');
));

当我运行它时,我在控制台中收到错误:

ERROR: 'Spec 'FeatureFlagsService should see expectations' has no expectations.'

同样在浏览器输出中,我的测试前缀为:

SPEC HAS NO EXPECTATIONS should see expectations

添加 expect(true).toBe(true); 可以解决问题,但这并不是我真正想要的方式。

如何注册m.expect作为对jasmine的期望?

【问题讨论】:

你是从 rxjs-marbles/jasmine 导入的吗? rxjs-marbles/jasmine @dmcgrandle 是的,我使用这个导入。我将尝试通过复制创建一个堆栈闪电战。 【参考方案1】:

它实际上是由 lib 本身封装的。我在github上创建了一个issue,很快就解决了:https://github.com/cartant/rxjs-marbles/issues/51

【讨论】:

以上是关于rxjs-marbles 测试没有任何期望的主要内容,如果未能解决你的问题,请参考以下文章

Angular 单元测试 mockbackend SPEC 没有期望

规范没有期望茉莉花

Jmockit 期望错误

Laravel 功能测试。缓存模拟不起作用! CacheManager::driver(),但没有指定期望

在等待期望时使用 XCTFail 并不能防止超时

JMock 期望 oneOf VS 一个区别