2017-07-21 10 views
0

同じロジックを含む再利用可能なステップを定義しようとしていますが、異なる言い方をすることもできます。たとえば、次のようにCucumber JS - 文章の一部または全部を選択

the message "Running defect detection module..." should be displayed

the message "Defect detection complete." should be displayed when the process is complete

私の正規表現は、これまでのようになります。

/^the message "([^"]*)" should be displayed$/

と私はまた、次の正規表現をやって試してみました:

/^the message "([^"]*)" should be displayed(\s*\w*)*$/

しかし、結果は得られません。何か案は?

ありがとうございました

+0

'$'を削除します。[この正規表現のデモ](https://regex101.com/r/lAi67K/1)を参照してください。 –

+0

申し訳ありません@WiktorStribiżew私はそれが別の言葉で言われるかもしれないと言います私は 'プロセスが完了したとき'で終わりです – Jackthomson

+0

まあ、多分['^メッセージ"([^ "] *)"私のステップを定義していたときに、2番目の正規表現パターンを2番目の正規表現パターンに入れるのを忘れてしまったので、この問題は解決されませんでした($ https://regex101.com/r/lAi67K/2)? –

答えて

0

この件についてこのトピックについて

function check(str) { 
 
    return /^the message \"(.*)\" should be displayed(.*)$/.test(str); 
 
} 
 

 
function test(str) { 
 
    console.log(str, " => ", check(str)); 
 
} 
 

 
test("the message \"Running defect detection module...\" should be displayed"); 
 
test("the message \"Defect detection complete.\" should be displayed when the process is complete");

+0

この '。*'はあまりに貪欲で、[これも好きです](https://regex101.com/r/7ZIjz5/1)と一致します。 –

+0

私の問題は、最後に正規表現とは関係がありませんでした。私は自分のミスを犯しました!ご協力ありがとうございました! – Jackthomson

0

私は、このようなステップを作成しようとしていないお勧めします。代わりに、メッセージに名前を付けて(通信しようとしているものをカプセル化して)、それぞれのステップを書きます。

はその後 が続い

キュウリはUIに表示されます正確に何をテストするための素晴らしいではありません「私は欠陥検出が完了している見るべきである」「私は欠陥検出が実行されて表示されるはずです」。アイデアは、UIに表示されるものを使用して、特定のビジネスビヘイビアが動作することを確認し、小さな詳細を変更するたびにシナリオが失敗しないようにすることです(メッセージは、または句読点がいくつか追加されているか、またはクールなグラフィックを使用して欠陥検出が実行中であることを示します)。

複雑な手順を作成して一連のシナリオコンテンツを一致させるためにregexを使用することは、アンチパターンです。私が約10年前にクッキングを始めたときは、すべてのステップ定義で正規表現を使用しましたが、今はまったく使用しません。

関連する問題