首页 > 解决方案 > 避免黄瓜中的例子

问题描述

请让我知道如何在 Cucumber 中跳过使用示例进行测试迭代?我希望功能文件应该只有测试步骤,并且在步骤定义中我想使用 testng dataprovider 之类的东西进行迭代。我尝试了数据提供程序,但由于它与 @Test 标签一起使用,看起来它不是一个可行的解决方案。有什么帮助吗?

标签: javaseleniumcucumbertestngdataprovider

解决方案


首先,Cucumber 不是测试工具,它是协作开发行为的工具。因此,您绝对不想使用 Cucumber 为同一事物编写大量迭代测试。而是尝试使用单元测试工具在较低级别进行此类测试。一个编写良好的单元测试可以轻松地比标准的 Cuke 快 1000 倍,所以如果你有很多相同的测试,你可以使用这种方法节省大量的运行时间。

如果由于某种原因你不能这样做,那么为测试提供数据以进行迭代的地方是在一个由步骤定义调用的辅助方法中。一旦您使用了辅助方法,您就可以使用您的编程语言,因此您可以轻松获取外部文件、读取流和循环。这是比使用场景大纲和大型示例表更好的方法

您可以通过 cucumber.io 和 cucumber slack 通道了解如何使用辅助方法以及如何从步骤定义中调用它们。

如果您想知道如何在 Ruby 中做到这一点,请告诉我,我会添加另一个答案。


推荐阅读