2009-10-13 15 views
15

मैं अपने एएसपीनेट एमवीसी समाधान का परीक्षण करने के लिए नुनिट और मोक का उपयोग कर रहा हूं। क्या यह जांचने का एक अच्छा तरीका है कि दृश्य को पारित मॉडल सही वस्तु/संग्रह है?परीक्षण एएसपी.नेट एमवीसी व्यू मॉडल

[Test] 
public void Start_Page_Should_Display_Posts() 
{ 
    var posts = new List<Post> {new Post {Id = 1}, new Post {Id = 2}}; 

    var mock = new Mock<IRepository>(); 
    mock.Setup(x => x.FindAll<Post>()).Returns(posts.AsQueryable()); 

    var controller = new PostsController(mock.Object); 
    var result = controller.Index(null) as ViewResult; 
    var viewModel = controller.ViewData.Model as IEnumerable<Post>; 

    Assert.IsNotNull(result); 
    Assert.IsTrue(viewModel.Count() == mock.Object.FindAll<Post>().Count()); 
} 

मैं समझता हूं कि इस प्रकार के ढांचे का परीक्षण होता है, लेकिन उम्मीद है कि आपको मेरा अंक मिल जाएगा। क्या मैं इस परीक्षा पर भरोसा कर सकता हूं?

वर्तमान में मैं थोड़ा थक गया हूं इसलिए एक विस्तार के लिए पूछने में संकोच नहीं करें।

धन्यवाद

उत्तर

14

कोई यह (केवल?) ढांचे का परीक्षण नहीं करता है। यह परीक्षण करता है कि एक व्यूमोडेल में क्रिया परिणामों को निष्पादित करता है जिसमें नकली, एक ही गिनती का संग्रह होता है जो नकली में आपूर्ति की जाती है।

आप

Assert.IsTrue(viewModel.Count() == posts.Count); 

या यहाँ तक कि

Assert.IsTrue(viewModel.Count() == 2); 

मेरा मतलब है कि यह एक इकाई परीक्षण है में पिछले हालत को आसान बनाने में कर सकता है, यह वहाँ में कुछ हार्डकोडेड मूल्यों होना सामान्य है।

+1

इसकी पुष्टि करने के लिए धन्यवाद। – alexn

संबंधित मुद्दे