0

私はこのような方法を持っています。

public ActionResult Index(int ? page)
    {
        List<Request> reqList = re.DisplayAll();
        const int pageSize = 5;

        if (!string.Equals(Request.HttpMethod,"GET"))
        {
            page = 1;
        }

        int pageNumber = page ?? 1;

        return View(reqList.ToPagedList(pageNumber,pageSize));
    }

そして、私の Test メソッドは以下のようになります。

 public void testReviewReturn()
      {

          var controller = CreateReviewController();
          var reviewResult = controller.Index(1);

          Assert.IsInstanceOf( typeof(ViewResult), reviewResult);
      }

ここで、Index 関数に 1 を渡すと、Null 参照例外があり、テストが失敗するという例外が発生します。このメソッドをテストする方法がわかりません。アドバイスが必要です。Nunit と ASP .Net MVC4 を使用した単体テストは初めてです

4

1 に答える 1

1

テスト プロジェクトからアクション メソッドを呼び出すと、Your Requestは null になります。そのため、テスト プロジェクトから実行すると、If ステートメントは例外をスローします。ブラウザを使用してアクション メソッドを実行すると、コードは正常に動作します。

あなたがすべきことは、いくつかのモック フレームワークを使用してリクエストをモックすることです。この回答は、Moqでそれを行う方法を示しています。

于 2013-03-07T18:26:48.923 に答える