У меня следующий интерфейс
export interface Command {
id: CommandId;
disabled: boolean;
}
Я хотел бы проверить, что отключенный был вызван / изменен на нем. Я пробовал следующее:
1) Создайте объект и проверьте, не было ли изменено свойство:
const command1: Command = {id: CommandId.Print, disabled: false};
// some stuff inbetween (see below)
expect(command1.disabled).toBe(true);
Результат:
TypeError: Cannot set property 'disabled' of undefined
2) Создайте макет с помощью typemock:
const command1 = Mock.ofType<Command>();
command1.setup(x => x.id).returns(() => CommandId.Print);
// some stuff inbetween (see below)
command1.verify(x => x.disabled, Times.once());
Результат:
TypeError: 'set' on proxy: trap returned falsish for property 'disabled'
3) Использование spyOnProperty:
const command1 = {id: CommandId.Print, disabled: false} as Command;
spyOnProperty(command1, 'disabled');
// some stuff following (see below)
Результат:
Ошибка: свойство отключено нет типа доступа get
У меня нет идей, как проверить такие вещи? (Я новичок в Angular и машинописном тексте)
весь метод тестирования:
// arrange
const command1 = {id: TaskCommandId.Print, disabled: false} as Command;
spyOnProperty(command1, 'disabled');
const command2 = {id: CommandId.SaveTemplate, disabled: false } as Command;
spyOnProperty(command2, 'disabled');
const commands = [command1, command2];
mockService.setup(x => x.getCommands()).returns(() => commands);
const command1Update = {id: CommandId.Print, disabled: true } as CommandState;
component.ngOnInit();
// act
component.updateEnabledState(command1Update);
// assert
expect(command1.disabled).toHaveBeenCalled();
expect(command2.disabled).not.toHaveBeenCalled();