0

誰かがこれをどのように行うことができるか知っているだろうかと思います。

次のスニペットのようなシナリオがあります。表の中に、テストの実行時に置き換えることができるパラメーターが必要です。スニペットの例:

...
Given blah blah blah
Then yada yada yada
...
And the quotes should have details:
|Ref|Product|Issue Date|Maturity Date|
|<A VALID REF>|Vanilla Option|<TODAY>|<TODAY+3M>

したがって、私が知りたいのは、JBheaveがテーブル内でこの種のパラメーター化をサポートしているかどうかです。このテーブルでは、コードのどこかで値を定義し、実行時にそれを置き換えることができます。

これを参照しているドキュメントが見つからないので、手動で行う必要があると思います。それは本当に問題ではありませんが、それを行うためのより良い方法があれば、私は学びたいと思っています。

4

2 に答える 2

1

私はしばらくの間 (2.X 以降) JBehave を使っていませんが、当時はサポートしていませんでした。

ここで行っているのは、すべての例で機能するシナリオを作成することです。これはシナリオではなく、シナリオ形式で書かれた承認基準です。これを行うと、具体的な例を使用することの他の利点、特に想像力を刺激し、興味深い行動を呼び起こし、ビジネス関係者との有益な質問や会話を可能にする方法を逃してしまいます。

この場合、製品がこのシナリオの結果について最も興味深いものである場合は、それを個別に呼び出すことをお勧めします。

次に、見積もりに Vanilla Option 製品が含まれている必要があります。

さらに強力なのは、結果が誰にとって役立つを調べ、それがどのように役立つかについて言及することです。

次に、ユーザーは、バニラ オプションを購入するように誘導するための見積もりを電子メールで受け取る必要があります。

私が示した例では、実際に利益を得るのはビジネスであり、実際にはユーザーのために行われているわけではないことに注意してください。

より高いレベルの抽象化でステップを作成することで、結果の価値をユーザーや利害関係者に簡単に伝えることができ、より良い会話ができるようになります。BDD の中心にあるのは、自動化ではなく会話です。

これが、JBehave がサポートしているとは思わない理由であり、サポートすべきとも思わない理由です。

于 2012-01-30T09:30:43.943 に答える
0

これがあなたがやろうとしていることだと思います。

テストでは、人の名前など、ランダムなデータを大量に使用します。ランダムな名前を生成したら、後で呼び出すことができるこのタイプのデータを格納するために、Java クラスに書き込みます。

物語の中で私は次のようなものを持っています

When I create a new customer <customer>
When I do some stuff

When I do some more customer stuff
|NAME    |VALUE     |
|custName|<CUSTNAME>|
|dob     |01/01/1970|

When I do some more stuff

Examples:
|<customer>|<BLAH1>|<BLAH2>|<CUSTNAME>|<BLAH4>|
|\$random  |para1  |para2  |\$name    |para4  |
|George    |para1  |para2  |Peter     |para4  |

私が使用するテーブルからデータが抽出されるクラスでは:

if (value.equalsIgnoreCase("$name") {
    this.value = getStoredData().getName();
} else {
    this.value = value;
}

ストーリー内の変数の周りに <> を使用し、Java コードが変数の値を生成または呼び出す変数には $ を使用するのは、私自身の個人的な規則です。

例の表で $ を使用する場合、エスケープする必要があるため、バックスラッシュ

于 2013-11-05T11:43:48.937 に答える