Чтобы протестировать компоненты, связанные с реактивным нативом, подключенным (более высокого порядка), нам нужно использовать монтирование энзима для доступа к 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
метод?