Я пытаюсь смоделировать сервис, который предоставляет только несколько установленных свойств. Документация Здесь , кажется, указывает, что должен быть способ создать этот шпионский объект со шпионскими / поддельными свойствами, но я получаю ошибки, указывающие, что значение не определено.
I ' я хотел бы иметь возможность сказать, какое значение этих свойств было установлено во время тестирования и что их можно проверить только для получения и установки.
Мне не удалось найти каких-либо замечательных примеров как это должно быть использовано. Я попытался передать массив строк, как, похоже, указывали в документах.
beforeEach(async(() => {
taskServiceMock = jasmine.createSpyObj<TaskService>(
["getTasks"],
["searchString", "searchTaskStatus"]
);
TestBed.configureTestingModule({
declarations: [SearchTaskComponent],
providers: [{ provide: TaskService, useValue: taskServiceMock }],
}).compileComponents();
}))
Я также пытался передать шпионские объекты в поле свойств
const spySearchString = spyOnProperty(taskServiceMock, "searchString", "set");
const spyTaskStatus = spyOnProperty(taskServiceMock, "searchTaskStatus", "set");
beforeEach(async(() => {
taskServiceMock = jasmine.createSpyObj<TaskService>(
["getTasks"],
[spySearchString, spySearchTaskStatus]
);
TestBed.configureTestingModule({
declarations: [SearchTaskComponent],
providers: [{ provide: TaskService, useValue: taskServiceMock }],
}).compileComponents();
}))
Сервисный код, над которым издеваются компонент
private _searchStatus: TaskStatus;
private _searchString: string;
set searchString(search: string) {
this._searchString = search;
}
set searchTaskStatus(status: TaskStatus) {
this._searchStatus = status;
}
В обоих случаях я получаю сообщение об ошибке, указывающее, что модуль не будет компилироваться, поэтому я проверяю неопределенное значение. Версия Жасмин 3,5 Angular Версия 9.0.2