【发布时间】:2013-03-27 01:56:16
【问题描述】:
我正在研究 Apress 的 Pro ASP.NET MVC 4,并试图了解用于单元测试特定控制器方法的语法。
给定一个类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 对象的属性吗?
【问题讨论】:
标签: c# unit-testing casting controller viewresult