私はstackoverflowを検索して、数時間で4〜4時間のグーグルを検索しましたが、私の "些細な"問題の解決策はまだ見つかりませんでした。[Authorize]属性が適用されたコントローラメソッドをユニットテストするにはどうすればよいですか?
フィルタリングされた[Authorize] ActionResult
の単体テストを書く場合、そのユーザが認証されていることを偽ってどのように問題を解決しますか?
私は[Authorize]
で濾過されActionResult
方法がたくさんあるし、私は彼らが[Authorize]
かでフィルタリングしている場合に関係なく、私のActionResult
すべてのメソッドをテストしたいです。
私が何を意味するかの簡単な例:
[TestMethod]
public void Create_Get_ReturnsView()
{
// Arrange
var controller = new UserController();
// Act
var result = controller.Create();
// Assert
Assert.IsNotNull(result as ViewResult);
}
[Authorize]
public ActionResult Create()
{
return View("Create");
}
テストもあるため、[オーソライズ]フィルタでのActionResultメソッドをヒットしていない今のところ、例外スローがある:System.NullReferenceException: Object reference not set to an instance of an object.
あなたが私たちに示していないことがあります。あなたが表示するテストは*アクションフィルタを実行しません。たぶんコードはありますが、それはあなたの質問にはありません。まず、エラーの呼び出しスタック全体について、まずはどうですか? –