【发布时间】:2020-11-18 14:29:07
【问题描述】:
我一直在学习如何为 React 应用编写自动化测试,它提出了如何最好地测试与应用的一系列交互的问题。
假设我有一个 React 应用程序,它允许用户将学生分配到教室中的座位:Here's an image of what such an app would look like。
我想测试创建一个新学生,将该学生添加到教室中的一个座位,然后将该学生移回中间一列中没有座位的学生区域(我将其称为花名册)。
为此编写测试的最佳方式是什么?拥有一个大型测试用例是否有意义,其中将包含我正在测试的每个交互的断言(创建一个新学生,将其在教室和名册之间移动)?
或者我应该创建多个案例,其中一个依赖于另一个?也就是说……
测试1)提交表单时检查是否成功创建新学生
测试 2) 使用在测试 1 中创建的学生,将学生移动到教室中的座位
测试 3) 学生现在坐在座位上(由于测试 2),将其移回名册区域
我的另一个问题是 React 测试库是否足以满足此目的。或者这是否会被视为应该使用 Cypress 编写的端到端测试?
非常感谢您的反馈!
【问题讨论】:
-
您可以使用 RTL 进行 e2e,但它是为黑盒单元/集成测试而设计的。您描述的那种测试并不能消除对单元测试的需要。而且它并没有消除在浏览器中进行 e2e 测试的需要,因为 RTL 在 Node 中运行并且表现得不像真实的东西。所以这就是在适合它们的框架之间分离不同类型的测试的原因。
标签: javascript reactjs jestjs cypress react-testing-library