Tôi đang thực hiện một số thử nghiệm đơn vị MS đơn giản trên bộ điều khiển tiêu chuẩn, không có gì đặc biệt của tôi.Đơn vị thử nghiệm phương pháp điều khiển của tôi kết quả trong một ViewName trống?
Khi tôi kiểm tra số ViewName
proprty, từ đối tượng ViewResult
trả lại, đó là ""
(trống).
Tôi đang bị ấn tượng rằng ViewName
được ngụ ý bằng tên của View
(như suggested by this MS article về kiểm tra bộ điều khiển ASP.NET MVC).
BTW, khi tôi kiểm tra ViewData, tất cả đều ở đó và chính xác.
Dưới đây là đoạn code tôi có ...
public ActionResult Index(int? page, string tag)
{
if (page == null || page <= 0)
{
page = 1;
}
var viewData = new IndexViewData
{
... my property setters, etc ...
};
return View(viewData);
}
[TestMethod]
public void Index_Action_Should_Return_Index_View_For_Default_HomePage()
{
// Arrange.
var controller = PostController; // Wrapper, cause I use D.I.
// Act.
ViewResult viewResult = controller.Index(null, null) as ViewResult;
// Assert.
Assert.IsNotNull(viewResult);
Assert.AreEqual("Index", viewResult.ViewName); // This is false/fails.
var indexViewData = viewResult.ViewData.Model as IndexViewData;
Assert.IsNotNull(indexViewData); // This is true.
}
Heya. Hmm. tôi không hiểu bạn đang nói gì. "ViewName chỉ xuất hiện khi bạn đặt nó trong ViewResult". Tôi nghĩ rằng khuôn khổ tự động thiết lập này? Bạn đang nói rằng nó không được thiết lập tự động? –
Không. Theo như tôi có thể nói cho ViewName là null, trừ khi bạn đặt cụ thể nó. Tôi tin rằng nếu nó rỗng hoặc rỗng, nó sẽ kéo tên khung nhìn từ tên của hành động. – tvanfosson
>> Tôi tin rằng nếu nó rỗng hoặc rỗng, nó sẽ kéo tên khung nhìn từ tên của hành động << Hmm .. vậy có nghĩa là nó không được rỗng, đúng không? –