2010-03-04 43 views
5

Tôi vẫn đang tìm ra một số điểm tốt hơn xung quanh đơn vị kiểm tra ứng dụng ASP.Net MVC2 của tôi bằng cách sử dụng NUnit. Trên tổng thể, thử nghiệm ActionResults, mô hình, respositories của tôi và tương tự là thẳng về phía trước, nhưng tôi đã không phải thử nghiệm các phương pháp Ajax trước đây và tôi muốn một số hướng dẫn về cách tốt nhất nên đi về nó. Quay lại đầu trang |||||||||||||||||||||||||||||||||||||||||||||||||||||||Làm thế nào để bạn kiểm tra đơn vị hành động ASP.Net MVC JsonResult của bạn?

Xin cảm ơn trước.

Trả lời

6

Kiểm tra hành động của bộ điều khiển quay trở lại JsonResult không được bất kỳ khác biệt nào trong việc kiểm tra các tác vụ khác. Hãy xem xét các tình huống sau:

public class MyModel 
{ 
    public string Name { get; set; } 
} 

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return Json(new MyModel { Name = "Hello World" }); 
    } 
} 

Và kiểm tra đơn vị (xin lỗi nó MSTest, tôi không có NUnit atm nhưng nó phải là phía trước khá eo biển):

// arrange 
var sut = new HomeController(); 

// act 
var actual = sut.Index(); 

// assert 
Assert.IsInstanceOfType(actual, typeof(JsonResult)); 
var jsonResult = (JsonResult)actual; 
Assert.IsInstanceOfType(jsonResult.Data, typeof(MyModel)); 
var model = (MyModel)jsonResult.Data; 
Assert.AreEqual("Hello World", model.Name); 
+1

Tại sao bạn Khẳng định IsInstanceOfType? nếu nó không phải là loại, ngoại lệ sẽ được ném ra anyway. – gdoron

0

IMO, tốt hơn là không kiểm tra các phương thức Ajax của bạn (ý tôi là các ứng dụng khách, bộ điều khiển trên máy chủ mà bạn có thể kiểm tra dễ dàng) nhưng để kiểm tra giao diện người dùng của khách hàng. Để kiểm tra giao diện người dùng, tôi khuyên bạn nên sử dụng Selenium RC hoặc WatiN.

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