Ошибка типа: module.Name.replace не является функцией - PullRequest
0 голосов
/ 28 января 2019

Я новичок в модульном тестировании и не могу определить / настроить правильные реквизиты для следующего: js файл REACT / JS jest / энзим

populateModuleDropdown = (moduleList) => {
  let modules = moduleList.map(module => {
    return (
      <DropdownItem key={module.ModuleId} onClick={() => {
      this.props.setTarget(null);
      }}>
      <Link className='full-link'
      onClick={e => {if(this.props.module.moduleId === module.ModuleId){e.preventDefault()}}}
      to={'/'+module.Name.replace(/ /g,'')}>
      {module.Name}
      </Link>
      </DropdownItem>
    )
  })
}

Я сделал несколько похожих файлов ивсе они выглядят нормально и проходят правильно, но не могут определить и исправить следующую ошибку.Пожалуйста, обратите внимание на let mockmodules

Test.js

configure({adapter: new Adapter()});

describe(' testing  ', () => {

  let tree;
  let baseProps;
  let mockdefaultData;
  let mockmodule = {
    Name:"test",
    moduleId:{},

    beforeEach(() => {
      module : mockmodule,

      it (' Should render without a Module props',() => {
        baseProps = {
          ...baseProps,
          module: {},
        };
        // code
      });

      it(' Should render with ALL of the props', () => {
        //code

      });
    })
  }
})

1 Ответ

0 голосов
/ 29 января 2019

Что ж, эта ошибка означает, что объект, на который вы ссылаетесь, в данном случае module.Name - не имеет функции replace.Вопрос, который можно задать, может решить ваш вопрос:

  1. На какой модуль вы пытаетесь ссылаться ?Попробуйте выполнить console.log(module.Name), чтобы увидеть, соответствует ли это ожидаемому.

Если вы пытаетесь использовать встроенный метод замены строк в JS, то вы также можете проверить, если typeof(module.Name) это строка.Если это так, тогда следуйте документации по методу замены строки здесь: https://www.w3schools.com/jsref/jsref_replace.asp

Если это не так, вы можете откатиться назад, чтобы убедиться, что у вас есть правильные данные.

Предполагая, что module.Name на самом деле является строкой, его использование будет следующим:

module.Name = module.Name.replace(/ /g, '');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...