Я искал stackoverflow и googled через четыре часа и все еще не нашел решения для моей «тривиальной» проблемы.Как я могу протестировать метод контроллера, который имеет атрибут [Авторизовать]?
Если вы пишете единичный тест для вашего отфильтрованного [Authorize] ActionResult
, как вы решаете проблему подделать аутентификацию этого пользователя?
У меня есть много ActionResult
методов, которые фильтруются с [Authorize]
, и я хочу, чтобы проверить все мои ActionResult
метод независимо, если они будут отфильтрованы с [Authorize]
или нет.
Простой пример того, что я имею в виду:
[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 из-за [Authorize] фильтра, за исключением брошенной является: System.NullReferenceException: Object reference not set to an instance of an object.
Есть что-то, что вы нам не показываете. Тест, который вы показываете, не будет выполнять * любые * фильтры действий. Может быть, у вас есть код, который будет, но это не в вашем вопросе. Как насчет всего стека вызовов для ошибки, для стартеров? –