1

この質問に出くわしたとき、私は自分の問題について洞察を得ようとしていました。私の理解では、2 つの異なる機能が表現され、テストされています (それらについての 2 つの When と 2 つの Gives を見てください)。そうするのは正しいですか?

4

1 に答える 1

3

シナリオを記述する方法は 2 つあります (さらに言えば、クラスレベルの例も)。

1 つは、シナリオごとに 1 つの例を使用することです。

もう 1 つの方法は、シナリオごとに 1 つの動作の側面を持つことです。

このシナリオでは、非アクティブなユーザーとアクティブなユーザーの両方の場合の動作が、価値のあるものを提供します。どちらかがなければ、その行動は無意味です。したがって、それらを 1 つのシナリオにまとめることは理にかなっています。これは、シナリオのコンテキストを初期化するのに時間がかかることが多いという点で、実用的な利点も提供します。

それらを分割する正当な理由は、3 番目の動作が発生した場合です (たとえば、アクティブなユーザーと非アクティブなユーザーだけでなく、ユーザーを停止した場合など)。

行動のさまざまな側面がある場合は、通常、さまざまな例でそれらを説明することが重要です。例えば:

Given Fred bought a fridge for $100
When Fred returns the fridge
Then he should be refunded $100
And the fridge should be returned to stock.

2 つの結果は明らかに、行動の 2 つの異なる側面であり、異なる利害関係者 (顧客と店主) が関与しているため、それらを分割する方が理にかなっています。

Given Fred bought a fridge for $100
When Fred returns the fridge
Then he should be refunded $100

Given Fred bought a fridge for $100
When Fred returns the fridge
Then the fridge should be returned to stock.

ただし、それについては実用的にしてください。どちらか一方の方が読みやすく、理解しやすい場合は、厳格な規則よりも優先する必要があります。これを効果的に行う方法を学ぶのにしばらく時間がかかったと言えます。ほとんどの場合、経験が必要です。

于 2011-10-11T09:28:44.333 に答える