0

私は次の行動をとっています:

public ViewResult Index()
{
    var model = new MyIndexViewModel { TotalTips = (decimal)7.51 };
    return View(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
}

しかし、私は解決できませTotalTipsresult.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 に答える