1

私は最初のASP .NET MVCプロジェクトに取り組んでいます。この瞬間には、デスクトップアプリケーション用にRhino.Mocksを使用しました。MvcContrib.TestHelperでMoqを使用できますか?

私は現場で何が使用されているかを調べることを決めました。
Moqの称賛を読んだ後、私はそれに同行することに決めました。
(私はラムダが間違って使いすぎているものが大好きです)。

は、しかし、私はまたRhino.Mocksへの依存性を持っているようだMvcContrib TestHelperフレームワークのための賞賛を聞きました。

私が知る必要があるのはTestHelperが私にRhino.Mocksを使用するかどうかです。 TestHelperはRhinoの固有のものである場合には、私はTestHelperのためRhino.Mocksへ

  • スイッチ(悲しいのいずれかを決定する必要がありますので、私は私のテストでは二つの異なるモックフレームワークをミックスしたくないだろうが、おそらく)。
  • abandon TestMelq(おそらくない)を使うためのテストヘルパー。

私は本当にTestHelperが公開APIのRhino.Mocksから独立していることを願っていますが、私は100%確信していません。
誰かが確認できますか?

答えて

2

私はTestHelperはい、それはRhinoのモックを使用するためにあなたを課す私に

をRhino.Mocksを使用して課しているかどうかを知る必要があります。 TestHelperBuilderクラスのRequest、Response、Session、HttpContextなどのすべてのプロパティは、Rhino Mockでスタブされてお​​り、期待値を書くのを待っています。

+0

お返事ありがとうございます。私はRhinoをしなければならないと思う。 –

3

これがいつ変更されたのかわかりませんが、TestControllerBuilderはオプションのIMockFactory<T>引数を取るようになりました。私が見つけた問題は、あなたが1つを渡さなければ、デフォルトではRhinoMockに、そしてMoqには両方ともプロキシとしてデフォルトすることです。私のようにStructureMapを使用している場合は、常にRhinoMockが使用されます。 TestControllerBuilderにどのフラグを使用するかを伝えるフラグがあることを本当に願っています。

ビルダーがMoqを使用するようにするには、Moqに反映される新しいIMockFactory<T>クラスを渡すことができます。内部的には、MvcContribにはこれを完全に行うクラスがありますが、公にアクセスすることはできません。なぜ彼らがそれを公開していないのか分かりません。代わりにIMockFactory<T>の私の独自の実装を作成する

は、私は自分のソリューションにMvcContribコードおよびコピー/パスタにMoqFactoryMoqProxyクラスを掘るとTestControllerBuilderにそれらを渡すことにしました。それは本当に汚れていると感じますが、それは仕事を完了し、私の心のコンテンツにMoqを使用させます。

関連する問題