Можем ли мы использовать энзимное монтирование для тестирования компонентов, связанных с естественным редуксом (высшего порядка), которые написаны на машинописи - PullRequest
0 голосов
/ 31 мая 2019

Чтобы протестировать компоненты, связанные с реактивным нативом, подключенным (более высокого порядка), нам нужно использовать монтирование энзима для доступа к mapStateToProps, mapDispatchToProps и т. Д. Поскольку api монтирует api, использует jsdom. Монтирование поддерживается в реакции нативного или нет ?.
Я пролистал разные статьи, и было упомянуто, что мы можем использовать mount для тестирования компонентов, связанных с реактивным редуктором.
В моем файле установки Jest я дал этот кусок кода.

    /** jest setup file **/
    import { configure } from "enzyme";
    import EnzymeAdapter from "enzyme-adapter-react-16";
    configure({ adapter: new EnzymeAdapter() });
    
    /**
     * Set up DOM in node.js environment for Enzyme to mount to
     */
    const { JSDOM } = require("jsdom"); 
    const jsdom = new JSDOM("");
    const { window } = jsdom;
    
    function copyProps(src: any, target: NodeJS.Global) {
      Object.defineProperties(target, {
        ...Object.getOwnPropertyDescriptors(src),
        ...Object.getOwnPropertyDescriptors(target)
      });
    }
    
    global.window = window;
    global.document = window.document;
    global.navigator = {
      userAgent: "node.js"
    };
    copyProps(window, global);
    
    const originalConsoleError = console.error;
    console.error = (message: string) => {
      if (message.startsWith("Warning:")) {
        return;
      }
    
      originalConsoleError(message);
    };

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

console.error node_modules/react-dom/cjs/react-dom.development.js:506
          Warning: <Text /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
              in Text (created by Text)
              in Text (at create-icon-set.js:92)
              in Icon (created by Avatar)
              in Avatar (created by WrapperComponent)
              in WrapperComponent

Можем ли мы действительно использовать mount для тестирования реактивного старшего порядка? компоненты. Если нет, то как мы можем проверить с помощью шутки и фермента? Если да, то как чтобы избежать этих ошибок, не подавляя их как originalConsoleError метод?

...