私の問題は、MVC ランドでの私の無知によるものですが、T4MVC で生成されたコントローラーの関数のテストを作成しようとしています。そのため、MvcContrib.TestHelper も使用すると思いました。
私は TestControllerBuilder と私のコントローラーを新しくしました。それに対して InitializeController を呼び出そうとすると、例外が発生します。
System.TypeInitializationException: 'Images' の型初期化子が例外をスローしました。---> System.Web.HttpException: アプリケーションへのパスが不明なため、アプリケーションの相対仮想パス '~/Content/Images/add.gif' を絶対パスにすることはできません。
OK、画像を取得しようとしていますが、それらはテスト実行可能ファイルの相対パスにありません...どうすればわかりますか?
この T4MVCHelpers.ProcessVirtualPath() を試しましたが、VirtualPathUtility.ToAbsolute() メソッドを呼び出すと、そこで試したほとんどすべてがエラーをスローします。
私は何か間違ったことをしていることに疑いの余地はありません。TestControllerBuiler が私のモック HTTPContext をセットアップするという私の理解は間違っていますか? 画像のものを無視するように指示できますか?
n00bを助けてください。TestHelper と ProcessVirtualPath の使用方法に関する簡単な例は素晴らしいでしょう。
アップデート
同様のエラーが発生した場合、私の理由は、httpcontext がコントローラー コンストラクターで使用されていたためです。私の場合、T4MVC が生成した強力な型付きイメージ パスでエラーが発生していました。