#angular #unit-testing
Вопрос:
extractValue(exemptionLevel: string, exemptionValue: any): string {
switch(exemptionLevel) {
case "C": return exemptionValue.isoCountryCode.toString();
case "R": return exemptionValue.districtNumber.toString();
case "D": return exemptionValue.divisionCode.toString();
case "T": return exemptionValue.terminalNumber.toString();
}
}
я попробовал ниже
it('expected value extractValue() c', () => {
component.extractValue('C','isoCountry');
expect('C').toEqual('isoCountry')
// expect(component.extractValue(expectedLevel[0], exemptionValue.isoCountryCode)).toHaveBeenCalled();
});
он показывает ошибку TypeError: Не удается прочитать свойство «toString» неопределенного
Ответ №1:
Вы отправляете строковый параметр функции и ожидаете получить доступ к ее isoCountryCode
свойству, которое всегда будет неопределенным. Вы должны предоставить тестируемой функции exemptionValue
макет.
it('expected value extractValue() c', () => {
const isoCountryMockResult = 'someResult';
const exemptionValue = { isoCountryCode: isoCountryMockResult } // define your mock
component.extractValue('C', exemptionValue);
expect('C').toEqual(isoCountryMockResult)
}
Это должно сработать, но вы должны приспособить его к своим потребностям
Комментарии:
1. работает нормально . спасибо, что развлекаешься
2. Тогда вы должны принять ответ
3. я согласился.. Спасибо за отзыв! Вам нужно не менее 15 репутации, чтобы проголосовать, но ваши отзывы были записаны.
4. Как написать тестовую подписку внутри конструктора ` конструктор(частная служба исключений:Служба исключений){ this.exemptionService.getGlobalExemptionReasons().subscribe(причина => this.причина = причина); }`