0

我有以下动作:

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

我知道这是错误的,但无法弄清楚如何正确解决我发布到索引视图的模型。

4

1 回答 1

2

根据文档 ViewDataDictionary.Model被键入为对象,因此您必须将其转换为您的视图模型类型:

var viewModel = (MyIndexViewModel)result.ViewData.Model;
Assert.AreEqual(viewModel.TotalTips, test.TotalTips);
于 2012-10-03T17:30:10.047 回答