我有以下行动:
public ViewResult Index()
{
var model = new MyIndexViewModel { TotalTips = (decimal)7.51 };
return View(model);
}
我想编写一个单元测试来验证model.TotalTips是7.51。
我正在尝试这样的事情:
[TestMethod]
public void Test()
{
// Arrange
var controller = new MyController(_mockRepository.Object);
MyIndexViewModel test = new MyIndexViewModel{TotalTips = (decimal)7.51};
// Action
ViewResult result = controller.Index();
// Assert
Assert.AreEqual(result.ViewData.Model.TotalTips, test.TotalTips); // Problem line
}
但我无法在TotalTips
上解决result.ViewData.Model.TotalTips
。
我知道这是错的,但无法弄清楚如何正确解析我发布到索引视图的模型。
答案 0 :(得分:2)
根据documentation ViewDataDictionary.Model
输入的对象,因此您必须将其强制转换为您的视图模型类型:
var viewModel = (MyIndexViewModel)result.ViewData.Model;
Assert.AreEqual(viewModel.TotalTips, test.TotalTips);