Частичный класс и установка свойства функции

Я пытаюсь протестировать Службу 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> не разрешить назначение функции? Я не смог ничего найти в документах.

0 ответов

Другие вопросы по тегам