Я работаю через Pro ASP.NET MVC 4 от Apress и пытаюсь понять синтаксис, используемый при модульном тестировании определенного метода контроллера.Свойство метода контроллера тестирования устройства
Учитывая метод контроллера для класса SomeController
:
public ViewResult List(int someInt) {
ViewModel model = new ViewModel {
ModelObject = new ModelObject {
ObjectProperty = someInt;
}
}
return View(model);
}
тест блок выглядит примерно так:
[test method]
Some_Test() {
//...some code here to set up a mock object named 'mock'
SomeController target = new SomeController(mock.Object);
//This next line is where the syntax is confusing me
int result = ((ViewModel)target.List(1).Model).ModelObject.ObjectProperty;
Assert.AreEqual(result, 1);
}
Это почти как ViewResult.Model
испытывает быть своего рода «отливать», как тип ViewModel
или что-то в этом роде. Я уверен, что есть имя для этого синтаксиса/техники, и я хотел бы узнать больше о том, что здесь происходит.
Требуется ли этот метод, потому что что-то вроде:
int result = target.List(1).Model.ModelObject.ObjectProperty;
не работает, чтобы быть в состоянии получить доступ свойства model
объекта, переданного в представление?
Так ясно, что я не делал много отличного типа объектов (о чем свидетельствует мой вопрос о нобе о такой базовой конструкции). Спасибо за четкий ответ DS. Теперь это имеет смысл. – CBean