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);
我有一个服务方法 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);