gpt4 book ai didi

angular - 如何测试返回多个操作的效果

转载 作者:行者123 更新时间:2023-12-05 09:18:57 26 4
gpt4 key购买 nike

我有一个效果,先返回 Action A,然后返回 Action B

@Effect() myEffect$: Observable <Action> = this.actions$
.ofType('MY_ACTION')
.switchMap(() => Observable.of(
// subscribers will be notified
{ type: 'ACTION_ONE' },
// subscribers will be notified (again ...)
{ type: 'ACTION_TWO' }
));

如何测试两个连续的返回操作?

it('should return action one then action two', () => {
runner.queue(new myAction());
const expectedResult = twoSuccesiveActions;
sessionEffect.myEffect$.subscribe(result => {
// how do I test those two succesively returned actions
expect(result).toEqual(expectedResult);
});
});

最佳答案

您可以将一个与 take(1) 一起使用,另一个与 skip(1) 一起使用:

it('should return action one then action two', () => {
const expectedResult = twoSuccesiveActions;
sessionEffect.myEffect$.take(1).subscribe(result => {
// first action
expect(result).toEqual(expectedResult);
});

sessionEffect.myEffect$.skip(1).take(1).subscribe(result => {
// second action
expect(result).toEqual(expectedResult);
});

runner.queue(new myAction());
});

无论如何我建议您使用take(1) 如果您不手动取消订阅以确保不会泄漏到其他测试等...

关于angular - 如何测试返回多个操作的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42723779/

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