Вы можете проверить значения объектов, которые subscribe
изменяются. Шпионить за this.service.getMenuItems()
.
То, что вы действительно хотите здесь сделать, - это смоделировать поведение вашей службы, вернуть поддельное значение и проверить, обновляется ли this.navigationModel
соответствующим образом. Вы не должны тестировать сервис или метод getMenuItems
. Пример кода:
it('should change value on subscribe', () => {
const fakeValue = {}; // your fake value
spyOn(service, getMenuItems).and.callFake(
() => asyncData(Object.assign({}, fakeValue)));
component.getMenu();
expect(component.navigationModel).toBe(fakeValue);
});
, где asyncData
- это служебная функция.
export function asyncData<T>(data: T) {
return Observable.of(data);
}
Более подробное объяснение: https://angular.io/guide/testing#provide-a-spy-stub-herodetailservicespy
Жасминовые шпионы: https://jasmine.github.io/2.0/introduction.html#section-Spies