Tôi đã tìm kiếm stackoverflow và googled bốn một vài giờ và vẫn không tìm thấy bất kỳ giải pháp cho vấn đề "tầm thường" của tôi.Làm cách nào để đơn vị kiểm tra một phương pháp điều khiển có thuộc tính [Ủy quyền] được áp dụng?
Nếu bạn viết kiểm tra đơn vị cho [Authorize] ActionResult
được lọc của mình, cách bạn giải quyết vấn đề giả mạo người dùng đó được xác thực?
Tôi có rất nhiều phương pháp ActionResult
được lọc với [Authorize]
và tôi muốn thử nghiệm tất cả các phương pháp ActionResult
của mình bất kể chúng được lọc với [Authorize]
hay không.
Một ví dụ đơn giản về những gì tôi có nghĩa là:
[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");
}
Tính đến nay là kiểm tra thậm chí không đạt phương pháp ActionResult vì [Duyệt] lọc, ném ngoại lệ là: System.NullReferenceException: Object reference not set to an instance of an object.
Có điều gì đó bạn không hiển thị cho chúng tôi. Bài kiểm tra bạn hiển thị sẽ không thực thi * bất kỳ bộ lọc hành động nào. Có lẽ bạn có mã mà sẽ, nhưng nó không có trong câu hỏi của bạn. Làm thế nào về toàn bộ cuộc gọi ngăn xếp cho các lỗi, cho người mới bắt đầu? –