0

この 2 か月間、私は新しい MVC フレームワークを学ぼうと努めてきました。すべてのオブジェクト指向の概念を理解した後、MVC3、EF4 と DbContext、および ASP.Net メンバーシップ プロバイダーを使用してテスト サイトを作成しました。すべてが順調に進んでいました。次に、単体テストから始めて、テストに飛び込んで学ぶことにしました。

キーボードに頭をぶつけ続けて 2 週間が経ちましたが、今ではできる限りの不満を感じています。私は、たくさんのビデオ チュートリアル (TekPub、Plural-sight)、オンライン チュートリアル (ASP.Net、Microsoft など)、および StackOverflow の質問/回答をたくさん見てきました。ルース カップリング、依存性注入、リポジトリ、インターフェイス、スタブ、モック (ファウラーの記事を何度も読んでいます)、シム、ラムダ、リファクタリング... リストは延々と続きます( ...そして続きます。) Ninject、Structuremap、Moq、TypeMock、JustMock、nUnit、xUnitなどを見てきました...

だから私はこの猫の皮を剥ぐ方法がたくさんあることを知っています. 現在、VS11/MVC4 が出てきており、Fakes と呼ばれるものがあり、Membership などの静的メソッドに適しているようです。

私の質問:

MVC EF4/DbContext/Membership アプリケーションをテストしたいと考えています。私のページのほとんどは、認証されたユーザー [Authorize] を必要とします。それは、テストする実際のメソッドに到達する前です。

(私のように) 始めたばかりの場合、CRUD アプリケーションをテストするための最も簡単で簡単な方法は何ですか? プロダクション側で DI フレームワークを実行するのは必ずしも好きではありません (もう 1 つの問題が発生する可能性があります)。

VS11/MVC4 にアップグレードして、Fakes アプローチを試すことができました。少し単純に見えますが、EF のものにはすべてのリポジトリ/インターフェイスが必要なようです。

それとも、それをやめて、Selenium のような統合テスト ツールを使用しますか?

どんな提案でも大歓迎です。お粗末な質問で申し訳ありませんが、ここで一筋の光を望んでいます...

4

1 に答える 1

0

mvcまたはプログラムのすべてのバージョンで、ほぼ同じテスト方法です。

ロジックのほとんどはインターフェースに基づいているはずです。これにより、関心の分離と必要なものの単体テストが可能になります。また、ロジックを偽造(偽の実装を作成)またはモック(実行時に、MockまたはRhino Mockを使用して必要なロジックを表すクラスを作成)する可能性があります。

基本的な単体テストの詳細については、こちらをご覧ください。

http://msdn.microsoft.com/en-us/magazine/dd942838.aspx

また、StevenSandersonがほとんどのパーツの単体テストを含むサンプルアプリケーションを持っている本をご覧になることをお勧めします。

http://www.amazon.co.uk/Pro-ASP-NET-MVC-Framework-ebook/dp/B005PZ07US

ここにMOQの紹介があり ますhttp://www.codeproject.com/Tips/182847/An-Introduction-to-MOQ

サイのモックなどの代替手段があります。

http://ayende.com/blog

およびいくつかの例: http ://daysincode.blogspot.com/2012/06/examples-of-mocking-with-rhino-moq.html

もちろん、ここにあるすべてのものは次のようになります:http: //msdn.microsoft.com/en-us/magazine/ekstremalna-przerobka-asp-net--czesc6-podzial-obowiazkow.aspx

于 2012-07-16T07:48:19.073 に答える