javascript - 如何测试一系列交互?

标签 javascript reactjs jestjs cypress react-testing-library

我一直在学习如何为 React 应用程序编写自动化测试,它提出了关于如何最好地测试与该应用程序的一系列交互的问题。

假设我有一个 React 应用程序,它允许用户将学生分配到教室中的座位:Here's an image of what such an app would look like .

我想测试创建一个新学生,将该学生添加到教室的一个座位,然后将该学生移回中间列(我将其称为花名册)中未就座的学生区域。

为此编写测试的最佳方法是什么?拥有一个大型测试用例是否有意义,其中将包括我正在测试的每个交互的断言(创建一个新学生,将其在教室和花名册之间移动)?

或者我应该创建多个案例,其中一个依赖于另一个?换句话说……

测试1)提交表单时检查新学生是否创建成功

测试 2) 使用在测试 1 中创建的学生,将学生移动到教室的座位上

测试 3) 学生现在坐在座位上(由于测试 2),将其移回花名册区域

我的另一个问题是 React 测试库是否足以满足此目的。或者这会被视为应该使用 Cypress 编写的端到端测试吗?

非常感谢您的反馈!

最佳答案

您描述的过程肯定可以作为集成测试使用 react-testing-library 进行测试。来自docs/faq ,它鼓励测试组件树中足够高的组件,而不模拟子组件,以模拟和测试实际用户交互的情况。

另请查看 this Kent C. Dodds blog post .

关于javascript - 如何测试一系列交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63146145/

相关文章:

javascript - 模拟 vue 组件依赖

javascript - 旋转图像,如果最后一个图像则隐藏

javascript - Angular js : Prevent Bootstrap Modal from disappearing when clicking outside or pressing escape?

javascript - 修改现有的 url 验证正则表达式以在 javascript 中接受更多 url

javascript - 我该如何在React容器组件中进行API调用?

reactjs - React + Jest + Enzyme 表单 onSubmit 测试失败,除非我使用超时

javascript - JS功能只有在点击屏幕后才能正常工作

html - 如何使用 React 和 Rails 创建表单?

source-maps - `Invalid mapping` 尝试使用 babel require hook 和 polyfill 以及 React jsx transpile 时出错

javascript - 模仿使用 module.exports 的模块的结构