automation - 当必须创建大量测试数据时使用 Cucumber Datatables 是否有效
问题描述
在验证预期结果之前,我必须自动化需要大量 pre-Req 数据的场景。例如
场景:场景
1 当我为类型 1 的订单添加数据时
|name | 数量| 价值观|
|一个 |1 | 2 |
我为类型 2 的订单添加数据
|name | 数量| 价值观|计量单位|
|一个 |1 | 2 | 毫克 |
我为类型 3 的订单添加数据
|name | 数量| 价值观|UOM |交付|
|一个 |1 | 2 | 毫克 |首页|
我可以为每个订单创建步骤使用数据表吗?使用数据表会有效还是我应该使用列表。
解决方案
当你不应该把你的数据放在你的功能文件中时。相反,您应该命名您的数据并使用该名称引用功能文件中的数据。
然后,您可以在步骤定义中的代码中定义您的数据,(或者更好的是在辅助方法中)。
这使您可以编写专注于您正在做什么以及为什么重要的功能,而不是您如何做某事。
如果你对表达你在做什么以及为什么它很重要不感兴趣,你可能不应该打扰使用 Cucumber,而是使用单元测试工具。在单元测试中处理复杂数据要容易得多,因为单元测试是用代码编写的,因此您可以轻松地执行以下操作
- 从其他地方导入数据
- 使用循环构造数据
- 使用结构来定义数据
- ...
推荐阅读
- sql - 如何删除重复项以使表中仅存在对?
- firebase - 如何使用 react-native-firebase 在 iOS 通知中添加自定义图像
- reactjs - 如何在 React 中使用 map 向数组添加值
- matlab - Matlab集成拟合的“linearinterp”返回错误“第一个输入参数必须是函数句柄”
- reactjs - 如何在 Datatables.net Cell 中设置 React Router?
- c# - 在 C++ COM 应用程序中,我在 C# 中遇到类似名称函数的问题
- wordpress - 使第一个条目需要Repeater beta的字段
- microsoft-teams - Microsoft Teams - 在聊天中呈现自适应卡片的问题
- common-lisp - 系统中的文件可以依赖于另一个系统中的文件吗?
- java - 动态创建播放音频按钮