相关疑难解决方法(0)

react-test-renderer 的 create() 与 @testing-library/react 的 render()

我是 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'));
});
Run Code Online (Sandbox Code Playgroud)

作为一个新手,我很难理解所有这些 React 库之间的区别。但我认为必须有一种更简单的方法。

如何简化我的测试代码,以便我只需要调用呈现组件的一件事,以便我可以进行快照测试和更具体的断言?

reactjs react-test-renderer react-testing-library

10
推荐指数
1
解决办法
3016
查看次数