私は現在、主に(T / B)DDの新しい方法を学び、どのテクノロジーを使用するかについて知識に基づいた決定を下せるようにするために、MSpecを把握しようとしています。以前は、ほとんど(読み取り:のみ)Moqで組み込みのMSTestフレームワークを使用していたため、BDDは私にとってまったく新しいものです。
ASP.NET MVCアプリを作成していますが、 PRGを実装したいと考えています。前回これを行ったときは、アクションフィルターを使用してModelState
を介してエクスポートおよびインポートしましTempData
た。これにより、を返すことができRedirectResult
、ユーザーがビューを取得したときに検証エラーが引き続き発生します。私は2つのことを検証することによってそのシナリオをテストしました:
a)私が書いたExportModelStateAttributeが適用されたこと(私のコントローラーのテストの中で)
b)属性が機能したこと(アクションフィルター属性のテストの中で)
ただし、BDDでは、動作にもっと関心があり、実装にはもっと関心がないはずだと理解しました。つまり、アクションの実行が終了したときにモデルの状態がtempdataにあることを確認する必要があります。必ずしも、属性を介して実行されているとは限りません。
さらに複雑なことに、テストでアクションを直接呼び出すときに属性が実行されないため、アクションを呼び出してジョブが完了したかどうかを確認することはできません。
MSpecでこれをどのようにスペック/テストする必要がありますか?