1

現在、Asp.net から asp.net mvc フレームワークへの切り替えが進行中であり、asp.net MVC とプレーン ASP.net のテストに関連する回答を見つけたいと思っていました。

MVC はより「テストしやすい」ものであるという社内の話がありますが、それはどのような意味でしょうか? つまり、単体テスト/テスト ケース、または Asp.net で同じことを行うよりも MVC を使用した単体テストの方が簡単 (またはできればはるかに簡単) なシナリオの例を教えていただけますか?

私たちは現在、この事実をめぐって大きな論争を繰り広げており、この会話での 2 つの議論は次のとおりです。 。ネット)

この議論はどこにも行きません。スタックオーバーフローの神々を知っている皆さんに、この問題を解決するための助けを求めたいと思っています。私が言ったように、MVC が実際にテストしやすいことを証明するために、ASP.net と MVC の両方で簡単にまとめることができるいくつかの例/ケースを好むでしょう。それとも、テストがさらに簡単ですか?私たちは開発ライフ サイクルをよりテストしやすいものにしようとしており、これは mvc の推進目標の 1 つですが、一部の古い開発者は asp.net が進むべき道だと主張しています。

この件についての洞察、個人的な意見、客観的な意見など、可能であればすべて教えていただけませんか。そして明らかに、テストに関しては、一方が他方よりも優れていることを証明するために、両方のフレームワークに実装できるテスト例があればさらに良い.

ありがとうございました!

4

3 に答える 3

4

MVP パターンを使用して WebForms プロジェクトを構築すると、MVC と同じくらいテスト可能になります。

違いは、MVC フレームワークでは、デフォルトでテスト可能なコードを書くことをほぼ強制するのに対し、WebForms では、テスト可能にするために非常に規律と厳格さが必要になることです。ただし、これに役立つ MVP フレームワークが利用可能です (例: http://webformsmvp.com/ ) 。

于 2012-06-07T07:18:20.187 に答える
0

単体テスト可能な Web フォームを記述できる ASP.NET 用のナビゲーション フレームワークを作成しました ( http://navigation.codeplex.com/ )。

フレームワークを使用して Web フォーム用の NerdDinner サンプルを実装し、MVC と同じくらい単体テストに適していることを示しました ( http://navigationnerddinner.codeplex.com/ )。

于 2012-06-07T08:47:44.127 に答える
0

私はasp.netを使用していないので、私のコメントはasp.net mvcの単体テストに関するものです。

一般に、(そしてクリスチャンが書いたように) 規律があり、厳格で、適切なプラクティス (制御の反転、インターフェイスへのプログラミング) を使用している場合、コードは簡単に単体テストできます。そうしないと(コントローラーからDBに直接書き込むなど)、asp.net mvcでさえ単体テストが難しくなります。asp.net mvc は、プログラマーに懸念を分離させようとしますが。

asp.net mvc では、ビューを単体テストできません。このため、ビューはシンプルに保ち、viewmodel からのデータのみを表示し、単純なロジック (for ループおよび単純な if ステートメント) のみを含める必要があります。ここでも、ビューが単純なままであることを確認するのはプログラマ次第です (たとえば、部分ビュー、拡張メソッドを使用)。

コントローラーとモデル クラスは、テストが難しいクラス (データベース リポジトリなど) またはモック化できないクラスに結合 (依存) されていない限り、単体テストを実行できます。

asp.net mvc のルーティングも単体テストできます。

おそらく、asp.net mvc チュートリアルを実行してください。多くのクラスが疎結合であり、単体テストが容易であることがわかるはずです。

于 2012-06-07T08:14:34.490 に答える