Asp.net mvc 如何在asp.net mvc单元测试中从ViewResult获取模型?
我在单元测试中调用控制器操作Asp.net mvc 如何在asp.net mvc单元测试中从ViewResult获取模型?,asp.net-mvc,unit-testing,Asp.net Mvc,Unit Testing,我在单元测试中调用控制器操作 ViewResult result = c.Index(null,null) as ViewResult; 我将结果强制转换为ViewResult,因为这是我在控制器中返回的结果: return View(model); 但是我如何在单元测试中访问这个模型变量呢?我向您推荐最优秀的。您的测试可能如下所示: // Arrange var c = new MyController(); //Act var result = c.Index(null,null);
ViewResult result = c.Index(null,null) as ViewResult;
我将结果强制转换为ViewResult,因为这是我在控制器中返回的结果:
return View(model);
但是我如何在单元测试中访问这个模型变量呢?我向您推荐最优秀的。您的测试可能如下所示:
// Arrange
var c = new MyController();
//Act
var result = c.Index(null,null);
var model = result.ViewData.Model;
//Assert
Assert("model is what you want");
[TestMethod]
public void SomeTest()
{
// arrange
var p1 = "foo";
var p2 = "bar";
// act
var actual = controller.Index(p1, p2);
// assert
actual
.AssertViewRendered() // make sure the right view has been returned
.WithViewData<SomeViewData>(); // make sure the view data is of correct type
}
[TestMethod]
公共测试()
{
//安排
var p1=“foo”;
var p2=“bar”;
//表演
var实际=控制器指数(p1,p2);
//断言
实际的
.AssertViewRendered()//确保返回了正确的视图
.WithViewData();//确保视图数据的类型正确
}
您还可以对模型的属性进行断言
actual
.AssertViewRendered()
.WithViewData<SomeViewData>()
.SomeProp
.ShouldEqual("some expected value");
实际
.AssertViewRendered()
.WithViewData()
.一些道具
.ShouldEqual(“某些预期值”);
它在viewdata中!谢谢,没有看那里。而不是。ShouldEqual(“一些期望值”)你的意思是应该是(“某个期望值”)代码>?