2013-07-31 28 views
5

Sayfam görünümüMVC Görünümlerini nasıl test edebilirim?

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" />")); 
} 

Soru olduğu gizli bir alan olup olmadığını test edebilmek Benim Kontrolör

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

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

istiyorum Bu Gizli Field aşağıdaki etti: Nasıl can görünümü string olarak mı render? Herhangi bir yardım?

+0

Bu soru bir kopya değil, ancak yanıt http://stackoverflow.com/questions/9243433/how-to-render-a-razor-view-to-a-string-in- adresinde bulunabilir. asp-ağ-mVC-3. –

+0

Bob amca (Robert Martin) alıntı yapmak için: "Gözlerinle" – MikeSW

+0

Sanırım soru şu: Birime gerçekten test yapmak istiyor musun? –

cevap

2

jilet görüş ve standart asp.net görünümleri için desteği vardır bu çözümün bir göz atın:

Render a view as a string

Benim size başka tavsiyem bu yüzden sen misin bir html ayrıştırıcı gibi HtmlAgilityPack kullanmak olacaktır Gizli alanınızı bulmak için sorgulayabilirsiniz. Bu yaklaşım string.contains testi, html'nizi yeniden düzenlediğinizde testlerinizi gevrek hale getirecektir.

İlgili konular