首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉Jasmine Marble将数组作为单个单元返回,而不是作为对观察者的两个单独调用返回

如何告诉Jasmine Marble将数组作为单个单元返回,而不是作为对观察者的两个单独调用返回
EN

Stack Overflow用户
提问于 2019-04-12 05:16:32
回答 1查看 258关注 0票数 1

我正在编写的Jasmine Marble测试是为数组中的每个元素调用一次Observable,而我希望它调用一次Observable并传递整个数组。

这是测试代码;

代码语言:javascript
复制
it('sends an action when fetching the conversion list', () => {
  const service_response = [CONVERSION_1, CONVERSION_2];
  const action = new ConversionActions.ConversionFetchList({ timestamp: 0 });
  const outcome = new ConversionActions.ConversionUpdatesReceived({ items: service_response });

  actions = hot('-(a|)', { a: action });
  const response = cold('-a|', { a: service_response });
  conversion_service.get_conversions.and.returnValue(service_response);

  const expected = cold('--b', { b: outcome });
  expect(effects.conversion_fetch_list$)
    .toBeObservable(expected);
});

在调试过程中,我看到observable被调用了两次:一次用于CONVERSION_1,另一次用于CONVERSION_2,但它需要做的是使用转换数组调用观察者一次。

EN

回答 1

Stack Overflow用户

发布于 2019-04-12 18:30:55

问题似乎是由模拟的服务调用引起的:

代码语言:javascript
复制
conversion_service.get_conversions.and.returnValue(service_response);

这就是打破数组,一次返回一个元素。将其更改为:

代码语言:javascript
复制
conversion_service.get_conversions.and.returnValue([service_response]);

似乎解决了这个问题,并告诉模拟将service_response作为单个实体返回。

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

https://stackoverflow.com/questions/55641304

复制
相关文章

相似问题

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