我需要比较 cucumber 测试中大于或小于计数的数字。我应该如何编写场景才能有效地做到这一点?
Scenario: Search and Compare count value.
Then I Search and Verify "user" count is "less than" 3
Then I Search and Verify "user" count is "greater than" 3
从上述场景来看,我应该如何传递比较器运算符并从 java stepdefs 获取。
最佳答案
不要依赖比较器,而是使用 Hamcrest
lessThan
和 greaterThan
匹配器。在您的步骤定义中:
import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.lessThan;
...
if(condition.equals("less than")) {
assertThat(val, lessThan(count));
} else if(condition.equals("greater than")) {
assertThat(val, greaterThan(count));
}
您可以丰富它以包括所有可能的条件:
switch(condition.toLowerCase()) {
case "less than":
case "<":
assertThat(val, lessThan(count));
break;
case "less than or equal to":
case "<=":
assertThat(val, lessThanOrEqualTo(count));
break;
case "greater than":
case ">":
assertThat(val, greaterThan(count));
break;
case "greater than or equal to":
case ">=":
assertThat(val, greaterThanOrEqualTo(count));
break;
...
}
请注意,您需要在项目中依赖 Hamcrest 库(如果它还不是依赖项)。
关于java - 在 Cucumber 测试场景中比较整数值的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42298620/