Сроки / обрамление проблема с жасминовым мрамором, используя горячий и холодный
У меня есть быстрое демо, которое люди могут скачать здесь: https://stackblitz.com/edit/angular-vczzqp Просто нажмите "Экспорт" в правом верхнем углу, в своем любимом терминале и запустите install
а также ng test
с вашим любимым браузером.
В принципе, мне кажется, что проблема заключается в том, что внутренние параметры Жасмин не совпадают с объектами.
Ниже тест и точная ошибка, которую я получаю. Смотрите пример в 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
})
})].
Любое руководство будет оценено.
1 ответ
Решение
Похоже, что это проблема того, как генерируются ошибки.
Исправление было добавить |
чтобы отметить наблюдаемое как завершенное, а также обернуть ожидаемое наблюдаемое в ()
сгруппировать операцию вместе.
actions$.stream = hot('a|', { a|: action });
const expected = cold('(b|)', { b: new genericActions.GetGenericFailedAction() });
Документация по синтаксису находится здесь.