我应该在 Capybara 集成测试中使用随机数据吗?

Should I be using random data in Capybara integration tests?

我正在为大约有 15 个步骤的向导编写一个非常长的集成测试。每个步骤都有大约 20 inputs/select 个框。

我开始在我的测试中使用静态数据,但现在我开始写一些东西,比如 select 从 select 框中输入一个随机值,然后点击一个随机单选按钮一个选项。例如,这看起来确实更能捕捉错误;页面上的其中一个按钮可能无法正确呈现,因此该值永远不会保存到数据库中 - 使用静态数据永远不会发现 select 每次都是相同的选项。或者,我可以手动写出每个可能的选项,但这需要很长时间才能完成。

我听说不使用随机数据的主要原因之一是您无法明确看到测试中使用的数据,这会使失败的测试难以解决。

我要走的这条路是要避免的吗?还是通常以这种方式进行测试?

这本质上是一个质量检查问题,而不是自动化问题。您需要问问自己和您的团队,测试每一个排列是否值得花费时间和精力。通常不是。根据我的经验,最好在您的向导中获取有关最常见用户旅程的信息,然后从那里进行分支。我会首先从自动化的角度解决这些问题,然后转向风险较低的路径。

我喜欢在开发人员确认相对无关紧要的某些低风险区域使用随机数据(例如,true/false 单选框),您始终可以确保正确记录输出以捕获错误。