黄瓜怎么知道运行哪个java文件?

时间:2017-01-23 13:06:27

标签: cucumber cucumber-java

Given i have a cucumber feature
When I run the feature from my java class with annotations to a certain  package  
Then cucumber knows to go and find the right class

但它是如何做到的?

如果我复制了这个类,那么它似乎运行了两次(并且爆炸了,我没有真正调查过)。它只是在包中查找通过注释/ java8命名匹配的任何方法吗?还是会发生其他事情?

我很好奇,因为如果你有两个给出不同的场景,但是这些类在同一个包中 - 这是一个问题吗?有解决方案吗?

1 个答案:

答案 0 :(得分:1)

Java和Gherkin之间的映射是相反的。也就是说,Java方法注释的正则表达式用于查找匹配步骤。

如果您有两个相同的Givens,则将执行相同的Java方法。这意味着您不能以完全相同的方式注释两个Java方法。您将得到的错误是一个模棱两可的步骤。但是当你考虑它时,得到一个错误可能不是你最大的问题。如果你在你的系统中的两个地方说同样的事情并且意味着两个不同的事情,那么你可能有一个更大的问题而不是抱怨模糊步骤的错误。

解决方案?划分你的系统。如果你愿意,你可以在一个模块中看到这些东西作为一个有界的上下文结束意味着在那个环境中到处都是确切的东西。如果您创建一个新模块,则可以将其视为另一个有界上下文,并使用相同的单词来表示不同的内容。