【发布时间】:2020-05-16 03:02:09
【问题描述】:
我正在测试一个 React 组件
import React from 'react';
import styled from 'styled-components';
const Input = styled.input``;
export default function FormInput (props) {
const { name, type, value, label, placeholder, onChange} = props;
return (
<Input
id={name}
name={name}
type={type}
placeholder={placeholder}
onChange={onChange}
value={value}
/>
)
};
使用这个单元测试
test('it changes the value of the input', () => {
let currentValue = 'Initial value';
const setValue = (value) => {
currentValue = value;
}
const component = <FormInput
name={'firstName'}
placeholder={'Enter your first name'}
value={currentValue}
onChange={(e) => setValue(e.target.value)} />
render(component);
const input = screen.getByPlaceholderText('Enter your first name');
fireEvent.change(input, {target: {value: 'New value'}});
expect(currentValue).toBe('New value');
expect(input.value).toBe('New value');
});
对输入值的断言是假的,因为它仍然是初始值。该组件在应用程序中正常工作。我在测试中设置了哪些错误?
【问题讨论】:
标签: reactjs jestjs react-testing-library