2013-07-31 19 views
5

Trang của tôi đã sau Hidden DòngTôi làm cách nào để kiểm tra Chế độ xem MVC?

<%= Html.Hidden("SessionId", Model.Form.UniqueSessionId) %> 

điều khiển của tôi

public class SomeController 
{ 
    public ActionResult Index() 
    { 
     var somemode = new GetSomeModel(); 
     return View(somemodel); 
    } 
} 

Tôi muốn có thể kiểm tra xem các điểm có trường ẩn

protected SomeController controller; 

protected void SetupController() 
{ 
    controller = new SomeController() 
} 

[Test] 
public void view_has_hidden_field_for_SessionId() 
{ 
    ViewResult result = controller.Index() as ViewResult; 
    Assert.IsTrue(result.contains("<input type="hidden" id="SessionId" />")); 
} 

Câu hỏi là: Làm thế nào tôi có thể hiển thị chế độ xem dưới dạng chuỗi? Bất kỳ giúp đỡ?

+0

Câu hỏi này không phải là bản sao, nhưng câu trả lời có thể được tìm thấy tại http://stackoverflow.com/questions/9243433/how-to-render-a-razor-view-to-a-string-in- asp-net-mvc-3. –

+0

Để trích dẫn chú Bob (Robert Martin): "Với đôi mắt của bạn" – MikeSW

+0

Tôi nghĩ câu hỏi ở đây là: bạn có thực sự muốn đơn vị kiểm tra chế độ xem không. –

Trả lời

2

Hãy nhìn vào giải pháp này trong đó có hỗ trợ cho quan điểm dao cạo và quan điểm asp.net tiêu chuẩn:

Render a view as a string

lời khuyên khác của tôi với bạn sẽ được sử dụng một phân tích cú pháp html như HtmlAgilityPack để bạn sau đó có thể truy vấn nó để tìm trường ẩn của bạn. Cách tiếp cận này tốt hơn khi thử nghiệm cho string.contains sẽ làm cho các thử nghiệm của bạn trở nên giòn khi bạn cấu trúc lại html của mình.

Các vấn đề liên quan