मैं सहमत होगा कि दृश्य के प्रकार के परीक्षण के लिए लौट आए कुछ हद तक व्यर्थ होगा। हालांकि, परीक्षण है कि उम्मीद "दृश्य" अपनी सही डेटा के साथ वापस आ गया था एक वैध परीक्षण का मामला IMO होगा।
उदाहरण यहां के लिए एक संपादन नियंत्रक के लिए एक विलक्षण संपादित परीक्षण का मामला है। ध्यान दें, कि इस उदाहरण Moq और Nunit का इस्तेमाल कर रही है, लेकिन है कि एक तरफ यह काफी सीधे आगे है।
ध्यान दें, कि कि ViewResult की उम्मीद दृश्य मॉडल के लिए डाला जाता है और कथनों तो उम्मीद संपर्क के खिलाफ किया जाता है।
टेस्ट:
[Test]
public void Edit_Get_Should_Lookup_Contact_From_Repository_And_Return_Edit_View()
{
// arrange
var _repository = new Mock<IContactRepository>();
var expectedContact = new Contact
{
First = "first",
Last = "last",
Email = "[email protected]"
};
var mockContext = new Mock<ControllerContext>();
_repository.Setup(x => x.GetById(It.IsAny<int>())).Returns(expectedContact);
var controller = new ContactController(_repository.Object)
{
ControllerContext = mockContext.Object
};
// act
var result = controller.Edit(1) as ViewResult;
var resultData = (Contact)result.ViewData.Model;
// assert
Assert.AreEqual("Edit", result.ViewName);
Assert.AreEqual(expectedContact.First, resultData.First);
Assert.AreEqual(expectedContact.Last, resultData.Last);
Assert.AreEqual(expectedContact.Email, resultData.Email);
}
नियंत्रक:
[HttpGet]
public ActionResult Edit(int id)
{
var contact = _repository.GetById(id);
return View("Edit", contact);
}
आह ... 'result.Model' उपयोगी लग रहा है। –