Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在asp.net mvc单元测试中从ViewResult获取模型?_Asp.net Mvc_Unit Testing - Fatal编程技术网

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(“一些期望值”)应该是(“某个期望值”)