reactjs - 反应测试库在每个之前都不能使用
问题描述
我有很多测试用例,我使用pre
自定义函数避免每次填写表格test
使用函数pre
自定义函数时,测试有效并通过
beforeEach(() => {
render(
<MemoryRouter initialEntries={['/']}>
<Signup {...props} />
</MemoryRouter>
);
});
describe('when form is filled', () => {
const pre = () => {
user.type(screen.getByLabelText(labelEmailText), 'email@demo.com')
user.click(screen.getByText(buttonText))
}
test('should render loading', async () => {
pre()
await waitFor(() => {
expect(screen.getByTestId(LOADING_TEST_ID)).toBeInTheDocument()
})
})
// ... a lot of test cases
})
它也应该可以使用,beforeEach
但测试不起作用
beforeEach(() => {
render(
<MemoryRouter initialEntries={['/']}>
<Signup {...props} />
</MemoryRouter>
);
});
describe('when form is filled', () => {
beforeEach(() => {
user.type(screen.getByLabelText(labelEmailText), 'email@demo.com')
user.click(screen.getByText(buttonText))
})
test('should render loading', async () => {
await waitFor(() => {
expect(screen.getByTestId(LOADING_TEST_ID)).toBeInTheDocument()
})
})
// ... a lot of test cases
})
Unable to find an element by: [data-testid="signup-form-loading-spinner"]
为什么反应测试库适用于自定义函数而不是beforeEach
解决方案
react testing library 与 一起使用beforeEach
,我认为这里没有问题beforeEach
,我尝试了基本示例,它可以正常工作,您可以screen.debug
在test
块中记录组件并查看组件是否正确呈现
//App.js
function App() {
return (
<div className="App">
<label htmlFor="username-input">Username</label>
<input type="text" id="username-input" data-testid="username" />
<button>Click</button>
</div>
);
}
//App.test.js
beforeEach(() => {
render(<App />);
})
describe('App component',() => {
beforeEach(() => {
user.type(screen.getByLabelText('Username'), 'email@demo.com')
user.click(screen.getByText('Click'))
})
test('renders correctly', async() => {
// screen.debug()
//expect(screen.getByTestId('username')).toBeInTheDocument()
await waitFor(() => {
expect(screen.getByTestId('username')).toBeInTheDocument()
})
});
})
推荐阅读
- r - 如何使用`writexl`包找到我在RStudio中创建的Excel表?
- python - 使用 For 循环在 Python 中从列表创建表格输入
- c# - EF Core - 多对多关系使用/访问自定义连接表
- sql - 如何删除表中除具有特定单词的行之外的所有数据?
- reactjs - 我的 useEffect 效果正在运行,但我不确定为什么 - 依赖数组值(似乎)没有改变
- python-3.x - 在熊猫中查找与正则表达式匹配的列名的索引
- database - 为什么要在数据设计中维护双向指针?
- javascript - Highchart.js 显示的组织结构图显示不正确
- visual-studio-code - VSCode:我可以通过文件扩展名启用扩展名吗?
- powershell - 有没有办法使用 PowerShell 记录对话?