gpt4 book ai didi

angular - 使用热和冷的 Jasmine 大理石的时间/框架问题

转载 作者:行者123 更新时间:2023-12-03 18:30:53 25 4
gpt4 key购买 nike

我有一个快速演示,人们可以在这里下载:https://stackblitz.com/edit/angular-vczzqp只需在您最喜欢的终端中点击右上 Angular 的导出并运行 installng test使用您最喜欢的浏览器。

对我来说,基本上问题似乎是 Jasmine 的内部时间与对象不匹配。

下面是测试以及我得到的确切错误。有关完整的测试类,请参阅 app/Test 下的示例

it('should return a GET_GENERIC_FAILED when the services throws', () => {
const action = new genericActions.GetAllGenericAction();

genericsService.getAllGenerics.and.returnValue(Observable.throw({}));

actions$.stream = hot('a', { a: action });
const expected = cold('b', { b: new genericActions.GetGenericFailedAction() });

expect(effects.getAllGenerics).toBeObservable(expected);
});

和错误
Expected
[Object({
frame: 0,
notification: Notification({
kind: 'N',
value: GetGenericFailedAction({
type: '[GENERIC] Get Generic Failed'
}),
error: undefined,
hasValue: true
})
}), Object({
frame: 0,
notification: Notification({
kind: 'C',
value: undefined,
error: undefined,
hasValue: false
})
})]
to equal
[Object({
frame: 0,
notification: Notification({
kind: 'N',
value: GetGenericFailedAction({
type: '[GENERIC] Get Generic Failed'
}),
error: undefined,
hasValue: true
})
})].

任何指导将不胜感激。

最佳答案

看起来这是一个关于如何抛出错误的问题。
修复方法是添加 |将 observable 标记为已完成并将预期的 observable 包装在 () 中将操作组合在一起。

actions$.stream = hot('a|', { a|: action });
const expected = cold('(b|)', { b: new genericActions.GetGenericFailedAction() });
有关语法的文档是 here然而 docs对于内部维护者来说似乎更容易消化。

关于angular - 使用热和冷的 Jasmine 大理石的时间/框架问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815474/

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