automated-tests - 您能否将结果(Given)保存到 Gherkin 特征文件中的变量中,然后将该变量与另一个结果(Then)进行比较?(Java 的黄瓜)
问题描述
我是 Cucumber for Java 的新手,并试图自动化测试由 MS SQL Server 支持的 SpringBoot 服务器。
我有一个端点“获取所有员工”。
编写传统的特征文件,我将不得不列出@Then
子句中的所有员工。这对于成千上万的员工来说是不可能的。
所以我只想获取数据库中Employee表的行数,然后与“获取所有员工”端点返回的对象数进行比较。
比较
SELECT count(*) from EMPLOYEE
从返回的列表的大小
List<Employee> getAllEmployees()
但是如何将行数保存在功能文件的变量中,然后将其传递给stepdefs
Java 方法?
我还没有找到 Gherkin 允许这样做的任何方式。
解决方案
您可以创建一个包,例如名为 dataRun 的包(在包中包含相应的类),并在测试期间通过设置器将详细信息保存在那里。
在执行“我从数据库中获取员工数量”步骤期间,您通过相应的设置器设置此计数,在“我获取所有员工”步骤期间,您通过专用设置器设置数量。然后在“我验证员工人数与数据库中的员工人数相同”的步骤中,您通过 getter 获得这两个数字并进行比较。
顺便说一句,如果将员工放入列表并比较列表,则可以比较员工的姓名(不仅仅是计数)。
推荐阅读
- git - 使用 git checkout 切换回之前的提交
- css - 导入css文件以与next.js反应时模块解析失败错误
- python - 气流:有效地实施等待(睡眠)任务
- android - 'gradlew' 不是内部或外部命令、可运行程序或批处理文件
- python - 在列表或数组中搜索与子列表的最佳匹配(通过数值差异)?
- javascript - 如何删除 Fusion 图表(DonutChart)中图表和图例之间的填充?
- algorithm - 当线向下时检查点是否是线的一部分的算法不能正常工作
- elixir - Elixir 编译器对忽略函数返回值的警告
- node.js - 使用 Typescript mongoose 填充的 expressjs
- asp.net-mvc - iframe 偶尔会丢失会话 cookie