У меня есть некоторые трудности с модульным тестированием функции. Я новичок в этих вещах, и я не знаю, что я могу сделать. У меня есть те 2, если.
Любой совет? Спасибо.
Я думаю, что ваша проблема заключается в jasmine.createSpy(phoneNumber);
, поскольку этот метод находится на стадии тестирования, мы не должны шпионить за ним, а скорее вызывать его реализацию.
Попробуйте следующее:
it('should remove outside prefix', () => {
const dialingOptions = {
reqLongDistPrefix: 10, reqOutsidePrefix: 11, dialLongDistanceLength: 12
} as any;
coreSvc.getCCDef = jasmine.createSpy().and.returnValue({ DialingOptions: dialingOptions });
let phoneNumber = '1011129999';
// !! Remove the following line !!
// component.removeOutsidePrefix = jasmine.createSpy(phoneNumber);
const modifiedPhoneNumber = component.removeOutsidePrefix(phoneNumber);
// !! below is not a good assertion, you can remove it
// expect(Object.keys(dialingOptions).length).toBe(3);
expect(modifiedPhoneNumber).toBe('insert what you expect it to be here');
});
.length
не существует на номера ***
Я думаю, вам следует изменить
reqLongDistPrefix
на'10'
(строка из 10) и то же самое сreqOutsidePrefix
, потому что вы получаете доступ к свойству.length
в этих свойствах, а.length
не существует в строках. Проблема в том, что, скорее всего, 2 проверки if не пройдут, вам нужно смоделировать тест, чтобы проверки if прошли и запустилосьreturn phoneNumber.substring
, а неphoneNumber
. Добавьте несколькоconsole.info
вне if и внутри ifs, чтобы увидеть значения.