#reactjs #jestjs
#reactjs #jestjs
Вопрос:
Я пишу тестовый пример, используя jest в Reactjs, но он завершается с ошибкой и выдает ошибку Method “simulate” is meant to be run on 1 node. 0 found instead
. Я реализовал тестовые примеры, обратившись к этой статье .
Компонент
render() {
const { errors } = this.state;
return (
<div style={{backgroundColor:'linear-gradient(RGBA(182,82,80))' , height:'50vh'}}>
<Container className='mt-5 mb-3 ' style={{width:'40em',height:'36em',backgroundColor:"White",borderRadius:'20px'}}>
<form noValidate onSubmit={this.onSubmit} className='login'>
<div className="form-group">
<label>Email</label>
<input type="text" className="form-control" placeholder="Email"
onChange={this.onChange}
value={this.state.email}
error={errors.email}
id="email"
name="email"
className={classnames("", {
invalid: errors.email || errors.emailnotfound
})}
/>
<span className="red-text">
{errors.email}
{errors.emailnotfound}
</span>
</div>
</form>
</Container>
<Footer/>
</div>
);
}
Тестовый пример
import React from 'react';
import {shallow} from 'enzyme';
import login from '../Components/login';
describe('Test case for testing login',() =>{
it('username check',()=>
{
wrapper = shallow(<login/>);
wrapper.find('input[type="text"]').simulate('change', {target: {name: 'email', value: 'krishankantsinghal'}});
expect(wrapper.state('email')).toEqual('krishankantsinghal');
})
})
В чем может быть возможная ошибка? Как я могу это исправить? Заранее спасибо
Ответ №1:
Имя компонента в нижнем регистре должно быть для собственных элементов браузера, таких как span
или table
. Хотя <login ..
это всегда будет отображаться буквально, без участия вашего класса.
Чтобы справиться с этим, вы должны использовать формат upper-first (или «capitalized»):
import Login from './login.jsx';
...
... shallow(<Login ........)