我正在尝试使用Enzyme在React中设置单元测试。当我运行命令" npm-test"测试失败了。 控制台终端指示由于shallow()而失败。 我已经使用此命令安装了酶npm install --save enzyme enzyme-adapter-react-16 react-test-renderer。有谁知道如何解决这个问题?
以下是组件
import React from 'react';
class Login extends Component {
render() {
return <div><input
onChange={(event) => {
this.setState({input: event.target.value})}}
type="text" /></div>;
}
}
export default Login;
这是我为Component编写的单元测试。
import React from 'react';
import { configure, shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import Login from '../../../src/components/authentication/Login';
import Enzyme from 'enzyme';
configure({adapter: new Adapter()});
it("should create an entry in component state with the event value", () => {
// given
const component = shallow(<Login/>);
const form = component.find('input');
// when
form.props().onChange({target: {
name: 'myName',
value: 'myValue'
}});
// then
expect(component.state('input')).toEqual('myValue');
});
感谢您的帮助。
答案 0 :(得分:0)
你好,也许你会错过这些惯例:
您必须将测试文件放在__tests__
目录中,并且测试文件应该命名为:YourComponent.test.js
将测试包装在测试套件中:
describe('Your test suite', () => {
test('it should do something', () => {
// the content of your test
});
});