gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 20:35:28 34 4
gpt4 key购买 nike

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

这是测试代码;

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。但它需要做的是使用转换数组调用观察者一次。

最佳答案

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

conversion_service.get_conversions.and.returnValue(service_response);

这是分解数组并一次返回一个元素。将其更改为:

conversion_service.get_conversions.and.returnValue([service_response]);

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

关于angular - 如何告诉 Jasmine Marbles 将数组作为一个单元返回,而不是作为对观察者的两个单独调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55641304/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com