私はMVCContribを使い始めたばかりで、さまざまなテストシナリオに追加される構文糖衣が本当に気に入っています。たとえば、私はこのアサーションを書いたばかりです。
"~/".Route().ShouldMapTo<SpotController>(c => c.List());
すばらしい!よくほとんど...
代わりに、必要に応じて、テストが失敗する実際の理由を確認します(MVCアプリケーションで何も変更していないため、にルーティングする必要がありHomeController.Index()
ます)。テストの実行中に例外がスローされたという一般的なメッセージが表示されます。これは、MVCContribのテスト拡張メソッドが正しく(?)をスローするため、デバッグ時に見つかりますAssertionException
。
MsTestのバージョンがであるのに対し、これはNUnitタイプの障害例外であると思いますAssertFailedException
。NUnitバージョンは(明らかに)MsTestバージョンを継承していないため、VSのテストランナーは例外をキャッチせず、素晴らしいメッセージを表示します。
MVCContrib.TestHelpersの半分を書き直すことなく、MsTestにAssertFailedExceptionsと同様の方法でAssertionExceptionsを処理させる方法はありますか?
私はローカルの作業コピーにソースコードを持っているので、そこに行ってテストメソッドを書き直して、代わりにMsTest例外をスローすることができますが、それは極端なやり過ぎのようです...
更新:この問題はほとんどのモックフレームワークでも発生するため、NUnitだけでなく、Moqやその他
のフレームワークでもこれを実行したいと思います...それは不可能ですか?AssertionException
VerificationException