問題タブ [bdd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - VB.NET で開発するための BDD/TDD ツールはありますか?
社内ツールのリライトを担当しています。現在、インタースティシャル バージョンが現在のニーズを満たすように、アプリケーションの設計を完全に書き直す時間を与えるために、最も時間のかかるステップをより高速に実行するために作り直しています。
この機会に、BDD/TDD を使用してこのコードを実装したいと思っていますが、一般的に、特に .NET のコンテキスト内では、このプログラミング方法は初めてです。.NET で利用できる BDD/TDD ツールはありますか? どのリソースを確認する必要がありますか?
事前にどうもありがとうございました!
アシッシュ
c# - NUnit を使用した -When-Then の例
NUnit を使用した Give-When-Then スタイルのテストに関するリソースを教えてもらえますか?
c# - NCoverはアセンブリをカバーしていませんか?
NCoverで.dllを適切にカバーするのに問題があります。XUnit.NETとSubSpecを使用してBDDスタイルの仕様を実行するテストプロジェクトがいくつかあります。これらのテストスイートの1つを除くすべては、TestDriven.NET(1.5.8)に付属するバージョンのNCoverで完全に実行されます。ただし、実際にテストされたアセンブリのプロファイルを作成することを拒否したものがあります。/ aオプションのアセンブリ名が正しいこと、.pdbファイルが存在すること、および実行中に例外がスローされないことを確認しました。8つのテストすべてに合格します。これは、NCoverコンソールアプリの実行時に確認できます。
アセンブリは、WPFアセンブリPresentationCore、PresentationFramework、およびWindowsBaseを参照します。それが問題を引き起こしている可能性があるかどうかはわかりませんが、NCoverがこのアセンブリのプロファイルを作成することを拒否したことに完全に困惑しています。
コマンドライン:
ノート:
問題は自然に解決したようです!何が変わったのかわかりませんが、アセンブリは適切にカバーされており、100%カバーされています。いくつかの入力を投げてくれた皆さんに感謝します。それは有り難いです!
project-management - ビジネスレベルからのBDD
私の現在のプロジェクトでは、ビヘイビア駆動開発 (BDD) を、ビジネス要件アプリケーション レベルのタスクの両方のレベルで使用したいと考えています。
クライアントがビジネス要件が完了したこと (その要件のすべての内部仕様が合格したこと) を確認できるように、内部 BDD 仕様を高レベルの仕様にラップ (グループ化) しても問題ありませんが、実際には内部仕様は表示されませんか?
ruby-on-rails - 特にRailsアプリケーション向けのTDD/BDD
アプリケーションの開発に TDD/BDD メソッドを使用する場合、どの程度の粒度を取得する必要がありますか? 特にRailsアプリケーションに関して。
すべての単一フィールドを個別にテストしてから、合格する移行を修正しますか? それでは、すべてのフィールドに独自の移行がありますか? フィールドが彼らのものであることを確認するために、実際に何をテストしますか?
私は本当に、どこから始めて、どのくらい細かく取得するかについて頭を悩ませようとしています. 私はすべての小さなことをテストする方法がわからないので、始めてフリーズします。
私が見た例のほとんどは、検証を例として使用しています。その前にもっと多くのコードが書かれていることは知っていますが、「名フィールドが必要」などの最も基本的なことをテストする方法がわかりません。
どんな助けでも大歓迎です。
ありがとう!
.net - 複数の継承された動作を可能にするBDDスタイルのフレームワークはありますか?
システムテストの多くはBDDスタイルで記述されており、重複を最小限に抑えるために継承された動作を適切に利用しています。たとえば、これは購入テストの基本的な階層である可能性があります。
この場合、BehavesLikeSuccessfulPurchase
アカウントステートメントにデビットエントリが必要であるなどの一般的な動作をBehavesLikePurchaseWithValidCreditCard
定義し、クラスは有効なクレジットカードを使用して任意のタイプの製品を購入するためのテストワークフローを定義するため、テストは具体的な製品インスタンスを提供するだけの小さな派生クラスです。 、例えば
ただし、具体的な製品タイプによっては、追加のチェックも必要です。たとえば、ビデオが正常に購入されるたびに、ユーザーのビデオライブラリに追加されていることを確認します。理想的には、これは別のクラスによって定義され、架空の構文を使用して混合される可能性があります。
ただし、もちろんC#は多重継承やミックスインをサポートしていないため、追加の動作に呼び出しを転送するボイラープレートメソッドを大量に作成することになります。この動作は、動作が変わるたびに変更する必要があります。
私たちが本当に必要としているのは、観察すべき追加の動作のタイプを提供するだけで、テストからの複数の動作をサポートする独自のメカニズムを備えたフレームワークです。私はxUnitと仕様の例を見てきましたが、そのトリックを実行できるいくつかの拡張機能を考え出すことは可能であるように見えますが、すでに存在するものはありますか?
model-view-controller - BDD Top-Down Approach
I'm new in BDD world and I've been in some difficult trying to get the best from top-down approach, strongly recommended by many people. Considering this what would you recommend as a good start point to specify controller's behaviors? I mean, what need to be tested in a CRUD controller scenario for example?
Regards,
Alex
ruby-on-rails - TDD / BDD Rails Cucumber/RSpecの複製
誰かがSIMPLEユーザーストーリーを使用して、Cucumberが何に使用され、RSpecが何に使用されるかについての完全なスライスを明確にできますか?先日、RSpecの本を購入して、それを読んでいます。作者は時々かなり漠然としているようです。
ユーザーストーリーが次のようなものである場合に私が考えていること(構文の誤りを許してください、これはあなたが要点を理解するためです):
ユーザーが無効な電話番号を入力すると、「無効な電話番号」というメッセージが表示されます
これをチェックするためにCucumberのすべてのコードを書き、次にrspecのものを書く場合、基本的にテストを複製しています。キュウリのテストがrspecのテストとどのように異なるべきかを説明するシナリオはありますか?
いつも両方のレベルでテストを複製しているような気がします。
これについて決定的な答えがない場合、私はキュウリの人々がRSpecの人々のつま先を踏みたくなかったと思い始めます。
助けてください。頭が爆発しそうな気がします。
ありがとう!
php - シナリオ/ストーリーは BDD/TDD の新しいインターフェイスですか?
PHP には (まだ) 戻り値の型がないため、多少機能が低下しています。X が既に存在する場合に例外をスローするには、コードが必要です。これをシナリオに書くことはできますが、シナリオから自分のクラスが実装するインターフェイスに進むことができません。
実際、この問題はTDDでも同じだと思います。インターフェースよりも、「テスト」を通じてわかることの方が多いようです。それでも私のインターフェイスは、どのコンポーネントが相互作用できるか、どのような責任を負うべきかを定義します。
PHP には戻り値の型がないため、問題はより大きくなりますが、x の場合に例外をスローする必要があるという契約がないため、他の言語にも存在します。
どうすればこれに対処できますか?
bdd - BDDと「いつ」の場所
私は、BDD への 2 つのアプローチのように思われることを見てきました。違いは、「いつ」の場所にかかっています。
アプローチ 1 では、when は仕様の一部です。
純粋な「その時与えられた」用語では、これは次のとおりです。
「空のスタックが与えられた場合、それがプッシュされると、空ではなくなります。」
したがって、「いつ」は指定方法の一部です。
アプローチ 2 では、when はクラス レベルで定義されます。つまり、 when は通常、セットアップで呼び出されます。
好ましい方法はありますか?動作の純粋なテストに関しては、テスト フィクスチャの焦点が動作にあるため、2 番目のオプションが望ましいと思われます。
ただし、テストを簡単にするために、最初の方法に傾いています。私がテストで見つけた苦労のほとんどはセットアップです。つまり、特定の状態で SUT を取得する必要があります。その状態になると、通常、実際に何らかの動作を呼び出すコードは 1 行だけです。そのため、クラスごと (つまり、セットアップ コンテキストごと) に複数の動作を設定すると、クラスの 1 回限りのセットアップが活用されます。
だから、私は考えを探しています。1 つのアプローチが他のアプローチよりも優先されますか?