質問

MSTestを始めたばかりです(少なくともVS 2008のテストツールに違いはありますか?)

セッションオブジェクトを使用するコードをテストしたい。明らかにHttpContextがなく、単にHttpContextを作成できないため、コードはNullReferenceExceptionで失敗します。

このコードは単にテストできませんか?

役に立ちましたか?

解決

テストしようとしているWebプロジェクトの種類(MVCまたはWebForms)はわかりませんが、 Scott Hanselmansモックヘルパーを使用してHttpContextBaseクラスをモックアウトします Rhino.Mocks および Moq はどちらも無料です。

他のヒント

テスト不可については知りませんが、テストするのは確かに難しいです。 typemockを使用すると、事実上すべてのモックとスタブを作成できます。ただし、無料ではありません。

セッションの呼び出しを別のオブジェクト内にラップし、それをインターフェイスの後ろに隠すこともできます。その後、そのインターフェイスをコードに挿入できます。テストのために、モック実装を注入できます。これにより2つのことが実現します。コードのテストが容易になり、Asp.Netのセッション実装に縛られなくなります。

セッションオブジェクトは、テストするロジックにどの程度関与しますか?たとえば、asp.netが使用している値だけの場合は、プレゼンテーションパターンでこれを抽象化します(テストの作成が簡単になります)

たとえば、次のロジックは、セッション情報をビューの実装にプッシュすることで簡単にテストできます

If UserObject.IsActive() Then
  _View.SessionActive = True
Else
  _View.SessionActive = False
End If

VS 2010では、 Microsoft Moles はモッキングのオプションです。

VS 2012では、 Microsoft偽物はモックのオプションです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top