#reactjs #jestjs #enzyme
#reactjs #jestjs #enzyme
Вопрос:
У меня есть страница входа, которую я в настоящее время тестирую с помощью JEST / Enzyme, используя этот код:
import React from 'react';
import {BrowserRouter as Router} from 'react-router-dom';
import { Button, FormControl } from 'react-bootstrap';
import Adapter from 'enzyme-adapter-react-16'
import { configure, mount } from 'enzyme';
import LoginScreen from'./index';
it('login page renders without crashing', () => {
configure({adapter: new Adapter()});
let page =
<Router>
<LoginScreen />
</Router>;
let mountedpage = mount(page);
let btn = mountedpage.find(Button);
let loginscreen;
let frm = mountedpage.find(FormControl);
frm.forEach(async (node) => {
node.simulate('change', {value: 'e'});
node.simulate('keypress', {key: 'e'});
node.simulate('keypress', {key: 'Enter'});
});
loginscreen = mountedpage.find(LoginScreen);
loginscreen.setState({mail: "test", pass: "123"});
btn = mountedpage.find(Button);
btn.simulate('click');
});
При вызове btn.simulate(‘click’) вход в систему выполняется успешно и перенаправляется на «/». Обычно страница входа размещается по адресу «/login», поэтому проблем не возникает.
Но, по-видимому, Enzyme эмулирует страницу по URL «/», поэтому я получаю предупреждение:
console.error node_modules/warning/warning.js:34
Warning: You tried to redirect to the same route you're currently on: "/"
Могу ли я каким-либо образом сообщить Enzyme, что по умолчанию он должен эмулировать значение «/ login»?