0

MVC 4 Webアプリケーションのテストの世界にかなり慣れておらず、テストビューとコントローラーをユニット化して、アクションが特定のビューをレンダリングする特定のコントローラーについて、MvcContribTestHelperを使用して次のプロセスを単純化しようとしているかどうかを確認しようとしています。アプリケーションをテストしていますが、これまでのところ、テストに合格することはできませんでした。

テストを実行すると、エラーが表示されます。予期されるビュー名は「インデックス」でした。実際は「」でした。

現在、私はこのテストメソッドを実行しています:

[TestMethod]
    public void AMAC_Controller_Renders_Index_View()
    {
        var builder = new TestControllerBuilder();
        var controller = new AMACController();
        builder.InitializeController(controller);

        var result = controller.Index();

        result.AssertViewRendered().ForView("index").WithViewData<AMACEnquiryModel>();
    }

コントローラとモデルの両方が現在アプリケーションで使用されています。このテストをどのように機能させるかについてアドバイスをいただけないでしょうか。これを行ったときに以前に変更しましたが、ルート名がコレクションにすでに存在するという別のエラーが発生します。 。

4

1 に答える 1

0

MvcContribプロジェクトの貢献者の1人からアドバイスを受けた後、テストに合格しなかった理由は、コントローラーが存在する.ForView( "index")を取得する前に、間違ったデータを.ForView()に渡していたためです。実際にView(model)を渡すため、.ForView()の値は実際には空の文字列であったため、アサートは次のようになります。

result.AssertViewRendered().ForView("").WithViewData<AMACEnquiryModel>();
于 2013-01-29T11:24:08.533 に答える