取得したものが T4MVC_ActionResult である場合、コントローラー アクションからレンダリングされたビューをテストするにはどうすればよいですか? 通常の状況では、例のように TestHelper のメソッドを直接使用できるはずです。
pooController.Details().AssertViewRendered().ForView("Details")
...しかし、T4MVC を介して ViewResult ではなく T4MVC_ActionResult を取得するため、この部分AssertViewRendered<>().ForView("Details")
は失敗します。どのビューが呼び出されたかをテストしたい場合、どのような代替手段がありますか?
アップデート:
テストコードは次のとおりです。
[TestMethod]
public void Theme_Controller_Details_Action_Returns_Details_View()
{
var builder = new TestControllerBuilder();
var mockThemeRepository = new Mock<IThemeRepository>();
var themeController = builder.CreateController<Evalgrid.Website.Controllers.ThemeController>(mockThemeRepository.Object);
builder.InitializeController(themeController);
var result = themeController.Details();
result.AssertViewRendered().ForView("Details");
}
行の後にブレークポイントを設定するデバッガーを使用しました。result
その変数の型は T4MVC_ActionResult で、themeController はEvalgrid.Website.controllers.ThemeController
. コントローラーの完全修飾名を使用したことに注意してください。
私はこれを得る:
予想される結果は、ViewResult 型である必要があります。実際には T4MVC_ActionResult 型です。
何が起こっているのかわかりません。