私は週末に取り組む型を与えられました。それを始める前に、私は本当にいくつかの考えを集めたかった. 私は解決策を探しているのではなく、最良のアプローチ/プラクティスに関するいくつかのアイデアです。
私が行った会話から、BDD --> ATDD (ガーキンのシナリオに関連) --> TDD アプローチを使用する必要があるように思われます。私はただ最善のアプローチを模索しているだけです。
私の現在の考えは、
1) specflow プロジェクトを作成し、ユーザー ストーリーをガーキンに抽出します。
2) GWT 構文を使用してガーキン (シナリオ) で関連する受け入れテストを作成し、[バインディング] クラスで私の ATTD スタイル テストを生成します (「生成」を右クリックします)。
3) gherkin ATDD テストに合格します。
私が抱えている難問は、ガーキン ファイル内の ATTD テストに直接リンクしているテストでは、低レベルの十分なテストが得られないということです。
それで、私は何をしますか?高レベルの ATDD テストを作成し、合格する前に、より深く掘り下げて純粋な TDD テストを作成し、低レベルのオブジェクトを設計しますか?
ええ、私は完全に BDD 方式 (純粋なスタイル) で作業する方法をまだ考えていないので、どのように掘り下げるか疑問に思いました。段階的に作業を進めて 1 つのテストを完了して合格する必要があることを感謝しますが、高レベルの ATDD テストから始めてさらに深くする必要があると感じているため、低レベルのコードが機能するまで高レベルのテストは機能しませんが、従う必要があります。 TDD その低レベルのコードをテストする必要があるため、1 つの単体テストをパスしてからリファクタリングするという原則を既に破っています.....
実際にやらずにこれにアプローチする「方法」を誰かが教えてくれることを願っています。しかし、ここに私に提供された問題があります...(テスターがこれを見た場合、ここで質問したことで失敗する可能性がありますが、仕事を得るよりも学ぶことがより重要です)。はい、私は怒っていることを知っています:-)
また、純粋な TDD テスト用に別のプロジェクトを作成する必要があるかどうかも知りたいです。最適なプロジェクト構造は? 1 つの specflow プロジェクトと .test プロジェクト、クラス ライブラリ、およびランタイム用のコンソール アプリを考えています。
PSこれを手伝ってくれる人は誰でも、私から彼らに恩恵を受けています。抱擁または慈善寄付。または、ここの+1だけがあなたが本当に欲しいものだと思います:-/
最初はグー、じゃんけん
User Story Front
+--------------------------------------------------+
| |
| Title: Waste an Hour Having Fun |
| |
| As a frequent games player, |
| I'd like to play rock, paper, scissors |
| so that I can spend an hour of my day having fun |
| |
| Acceptance Criteria |
| - Can I play Player vs Computer? |
| - Can I play Computer vs Computer? |
| - Can I play a different game each time? |
| |
+--------------------------------------------------+
User Story Back
+--------------------------------------------------+
| |
| Technical Constraints |
| |
| - Doesn't necessarily need a flashy GUI |
| (can be simple) |
| - Can use any modern language |
| |
| - Libs / external modules should only be used |
| for tests |
| - Using best in industry practices |
| |
+--------------------------------------------------+
ゲームを知りませんか?http://en.wikipedia.org/wiki/Rock-paper-scissors
私は縮小版を探しています (最小限の実行可能な製品を考えてください)。データベースなし (つまり、保存されたセッション)、単純なインターフェース - 2 時間または 3 時間分の作業 (トップ) は完全に合理的です。私は本格的なものを探しているのではなく、よく作られた小さなものだけを探しています. これが .NET ではなく Java であり、よりバックエンド指向である場合は、コンソール アプリで間に合わせます。C# で単体テストと適切に分解されたコードを探しています。私が探しているのは、たまたま C# ASP.Net MVC を使用しているコーダーです。