我是 React 新手,对所有测试库感到困惑。我让我的测试代码可以工作,但似乎是多余的,必须create()
从 react-test-renderer 调用才能使用它toMatchSnapshot()
,并且必须render()
从 @testing-library/react 调用才能使用它的断言,例如getByLabelText()
.
import {render} from '@testing-library/react';
import {act, create} from 'react-test-renderer';
it('renders a login screen', () => {
let mockInitialState: AppState = {
auth: initialAuthState
};
let component = <Root initialState={mockInitialState}/>;
let tree = null;
act(() => {
tree = create(component);
});
expect(tree).toMatchSnapshot();
const {getByLabelText, getByText} = render(component);
expect(getByLabelText(/Email Address.*/));
expect(getByLabelText(/Password*/));
expect(getByText('Sign in'));
});
作为一个新手,我很难理解所有这些 React 库之间的区别。但我认为必须有一个更简单的方法。
我怎样才能简化我的测试代码,所以我只需要调用一个渲染组件的东西,以便我可以进行快照测试和更具体的断言?