Angular: 单元测试服务中的 GET 方法

Angular: Unit testing GET method in service

我有一个服务方法 returns get 方法的项目和单元测试。但是,覆盖显示 getter 方法没有被覆盖。你能指出我在单元测试中做错了什么吗?

export class ItemService{
#item: Item;
  get item(): Item{
    return this.#item;
  }
}
import itemMock from '../mocks/item-response.json';
describe('ItemService', () => {
  let itemService: ItemService;
  it('should get item information', () => {
      itemService['#item'] = itemMock ;
      spyOnProperty(itemService, 'item').and.returnValue(itemMock);
      expect(itemService['#item']).toEqual(itemMock );
  });
}

好的,所以我认为问题是你的间谍实际上是在替换 getter,而这个从未被调用过。 也许你可以改变策略,只检查没有间谍的私人 属性 ?

expect(itemService.item).toEqual(itemMock);