我一直在这个问题上停留,我现在不解决该问题或找到解决方案。
我有一个角度服务,可用来从NGXS商店的购物清单中获取一日游记录。
但是,它在 ng测试中引发错误,提示“无法读取未定义的属性'undefined'”
服务中的代码看起来很简单。
getDataFromStore(daySelected: string): DailyShopList {
return this.store.selectSnapshot<DailyShopList>(
state => state.shoppingList.dailyEntries[daySelected] <--- issue is here
);
}
如果您查看 state => state.shoppingList.dailyEntries [daySelected] 行, 这是我得到错误的地方。 从对象末尾删除 [daySelected] 时,没有任何错误。
因此,在我的测试文件中,我试图模拟来自商店的数据。但是它仍然抛出错误。
describe('ShoppingListService', () => {
let service: ShoppingListService;
const data = {
state: {
shoppingList: {
dailyEntries: {
mon: {},
tue: {},
},
},
},
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpClientTestingModule,
NgxsModule.forRoot([MyNGXSstate]),
],
});
service = TestBed.inject(ShoppingListService);
const store: Store = TestBed.get(Store);
spyOn(store, 'selectSnapshot').and.returnValue(data); // trying to mock data from store
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
我想念什么?
谢谢。