Я пытаюсь проверить Службу Angular, для которой требуется другая Служба, и обнаружил их документацию по теме .Что мне нужно сделать, так это использовать Partial<T>
Typescript моего сервиса, и это создаст для меня издевательство.
Однако свойство, которое я пытаюсь использовать в моем партиале, является функцией.Всякий раз, когда я пытаюсь использовать функцию, она всегда возвращает 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
(без кавычек) это такая функция:
![f () { return fn.apply(this, arguments); }](https://i.stack.imgur.com/rzVcY.png)
Что я делаю не так, что не могу присвоить свойство?Я также попытался разорвать присваивание в Частичном новой строке за пределами экземпляра объекта.Partial<T>
не разрешает назначение функций?Я не смог ничего найти в документах.