Не совсем «сложный» метод:
- для каждого режима, обновите его
- обновите уровень
Из предоставленного кода вынужно два макета и одно ожидание:
it('should update the level ID', () => {
const newID = 5;
spyOn(component['modeService'], 'updateMode').and.returnValue(Promise.resolve(true));
spyOn(component['modeService'], 'updateLevel').and.returnValue(Promise.resolve({ id: newID }));
component.updateLevelModes(component.level);
expect(component.level.id).toEqual(newID);
});
Поскольку вы модульный тест вашего компонента, вы должны смоделировать ваши зависимости.Если вы этого не сделаете, ожидайте, что ваши тесты будут очень случайными и сложными для реализации.
Это означает, что если вы издеваетесь над своим сервисом, вам не нужно знать, что он делает, вам нужно только знать, что он возвращает новый уровень с идентификатором.
Этот тест для бизнеса - все, что вам нужно для предотвращения побочных эффектов.