ユニットテストしようとしているMVCコントローラークラスがあります。
特定のActionResultは次のようになります
public ActionResult Create(Shipment newShipment)
{
do some stuff to create a shipmentID
...
return RedirectToAction("AddUnit",newShipment.ShipmentID);
}
コントローラコンテキストなどをモックアップしたので、RedirectToAction呼び出しに渡されたnewShipment.ShipmentIDが期待どおりであることをテストしたいと思います。
私はテストを行っています(セットアップフェーズで多くのモックを使用しています)
[Test]
public void CreateSuccess()
{
//Arrange
var shipment = new Shipment();
shipment.Widgets = 2; //Make sure it a valid shipment otherwise
//Act
var result = controller.Create(shipment) as RedirectToRouteResult;
//Assert
Assert.IsNotNull(result);
Assert.AreEqual("AddUnits", result.RouteValues["action"]);
Assert.IsNull(result.RouteValues["controller"]);
...
そして今、私がRedirectToActionに渡すshipmentIDが正しいものであることを確認するためのアサーションを見つけたいと思います。その値を取得するにはどうすればよいですか?
(このコードは実際に機能すると思います(つまり、実際のビューは正しいshipmentIDを取得します)が、単体テストを作成したいと思います)。