我在Angular的一個組件中擁有以下方法,但是當我為它寫單元測驗時,它失敗了,不能識別組件中實際存在的屬性;這是我的方法
。makeUrl(): string {
const base: string = this.marketConditionsEnvironment.apiRoot;
const tempEquipment: string = '?equipment=Van';
const origin: string = this.makeLocation('origin', this.marketConditionsData.origin);
const searchCriteria: CreateSearchCriteria = this.dataSource.currentCriteria.createAndExecuteSearchCriteria.SearchCriteria;
if (searchCriteria.origin?.point) {
回傳 `${base}${tempEquipment}${origin}`。
}
回傳 `${base}${tempEquipment}`。
}
我為它寫了這個單元測驗:
describe('makeUrl', () => {
it('should call initCapital and makeLocation', () => {
spyOn(component, 'initCapital');
spyOn(component, 'makeLocation');
component.makeUrl();
expect(component.initCapital).toHaveBeenCalled();
expect(component.makeLocation).toHaveBeenCalled()。
});
});
然而,該測驗失敗了,出現了以下錯誤。"TypeError: 無法讀取未定義的屬性(讀取'currentCriteria')"。
它無法到達 "dataSource "物件。
它正通過輸入傳遞給組件:
@Input() dataSource: LoadsDataSource。
我做錯了什么?謝謝你。
uj5u.com熱心網友回復:
當你寫一個測驗時,沒有任何東西會被初始化。你的測驗看起來很標準,所以問題一定是你沒有在測驗中初始化dataSource屬性(它是輸入的并不重要,對于 "常規 "屬性也是一樣)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/328076.html
標籤:
