Частичный класс и установка свойства функции
Я пытаюсь протестировать Службу Angular, которая требует другой Службы, и нашел их документацию по этому вопросу. Что мне нужно сделать, это использовать Typescript Partial<T>
моего служения, и это создает издевательство для меня.
Однако свойство, которое я пытаюсь использовать в своей части, является функцией. Всякий раз, когда я пытаюсь использовать функцию, она всегда возвращает undefined
,
export class MyService {
public string bar = 'bar';
getType: Observable<MyType> {
// implementation detail
}
}
Мой файл спецификаций:
describe('FooService',
() => {
let serviceStub: Partial<MyService>;
let service: MyService;
beforeEach(() => {
serviceStub = {
bar: 'foo',
getType: () => {
return Observable.create(MyType.Two);
}
};
TestBed.configureTestingModule({
providers: [
FooService,
{
provide: MyService,
useValue: serviceStub
}
]
});
myService = TestBed.get(MyService);
});
it('when myService getType is called will not be undefined',
() => {
const observable = myService.getType();
// This fails
expect(observable).not.toBeUndefined();
});
});
Если я поставлю точку останова в тесте, myService.getType
(без кавычек) такая функция:
Что я делаю не так, что не могу присвоить недвижимость? Я также попытался разорвать присваивание в Частичном новой строке за пределами экземпляра объекта. Есть ли Partial<T>
не разрешить назначение функции? Я не смог ничего найти в документах.