2017-01-23 9 views
0
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 

しかし、どうしていますか?キュウリは、どのJavaファイルを実行するかをどのように知っていますか?

私がクラスを複製すると、それは2回実行されているように見えます(そして、爆発しました、本当に調査しませんでした)。 annotation/java8-namingで一致するメソッドをパッケージで探しますか?それとも何か他のことが起こるのですか?

異なるシナリオで2つのGivenがある場合でも、クラスが同じパッケージに含まれているとすれば、それは問題なのでしょうか?解決策はありますか?

答えて

1

JavaとGherkinの間のマッピングは逆です。つまり、Javaメソッドに注釈を付けた正規表現を使用して、一致するステップを見つけます。

Givensが同じ場合、同じJavaメソッドが実行されます。つまり、まったく同じ方法でアノテーションされた2つのJavaメソッドを持つことはできません。あなたが得るエラーはあいまいなステップです。しかし、あなたがそれについて考えるとき、エラーを得ることはあなたの最大の問題ではないかもしれません。システムの2つの場所で同じことを言い、2つの異なることを意味する場合、あいまいな手順について不平を言うよりも大きな問題があるでしょう。

解決策はありますか?システムを分割します。もしあなたが望むならば、あなたは、束縛された文脈の終わりとしての1つのモジュールのことを、その文脈のどこでも正確なことを意味することができます。新しいモジュールを作成した場合、それを別の境界のあるコンテキストとして表示し、同じ単語を使用して別のモジュールを意味することができます。

関連する問題