C#获取CreatedAtRoute的返回对象

C#获取CreatedAtRoute的返回对象,c#,unit-testing,asp.net-core,nunit,C#,Unit Testing,Asp.net Core,Nunit,我有一个返回CreatedAtRoute对象的控制器方法。如何提取返回的对象 我的测试类(调用控制器): [测试] public void AddUser(){ AppUser au=新的AppUser(); GreenCardController gc=新的GreenCardController(); ActionResult res=gc.UpdateArgosUser(au);//从返回的ActionResult中提取所需的值,强制转换为已知类型以访问所需的成员 由于控制器调用return

我有一个返回CreatedAtRoute对象的控制器方法。如何提取返回的对象

我的测试类(调用控制器):

[测试]
public void AddUser(){
AppUser au=新的AppUser();
GreenCardController gc=新的GreenCardController();

ActionResult res=gc.UpdateArgosUser(au);//从返回的
ActionResult
中提取所需的值,强制转换为已知类型以访问所需的成员

由于控制器调用
return CreatedAtRoute(…)
,因此您需要访问
ActionResult.Result
属性以从控制器获取返回的
ActionResult

从这里开始,就是在对象结果中获取存储值对象的问题

[Test]
public void AddUser(){
    //Arrange
    AppUser expected = new AppUser();
    GreenCardController controller = new GreenCardController();

    //Act
    ActionResult<AppUser> actionResult = controller.UpdateArgosUser(expected);
    CreatedAtRouteResult result = actionResult.Result as CreatedAtRouteResult;
    AppUser actual = result.Value as AppUser;

    //Assert
    Assert.AreEqual(expected, actual);
}
[测试]
public void AddUser(){
//安排
预期的AppUser=新的AppUser();
GreenCardController=新的GreenCardController();
//表演
ActionResult ActionResult=controller.UpdateArgosUser(预期);
CreateDatRouterResult=actionResult.result为CreateDatRouterResult;
AppUser实际值=结果。值为AppUser;
//断言
断言.AreEqual(预期、实际);
}

从返回的
ActionResult
中提取所需的值,转换为已知类型以访问所需的成员

由于控制器调用
return CreatedAtRoute(…)
,因此您需要访问
ActionResult.Result
属性以从控制器获取返回的
ActionResult

从这里开始,就是在对象结果中获取存储值对象的问题

[Test]
public void AddUser(){
    //Arrange
    AppUser expected = new AppUser();
    GreenCardController controller = new GreenCardController();

    //Act
    ActionResult<AppUser> actionResult = controller.UpdateArgosUser(expected);
    CreatedAtRouteResult result = actionResult.Result as CreatedAtRouteResult;
    AppUser actual = result.Value as AppUser;

    //Assert
    Assert.AreEqual(expected, actual);
}
[测试]
public void AddUser(){
//安排
预期的AppUser=新的AppUser();
GreenCardController=新的GreenCardController();
//表演
ActionResult ActionResult=controller.UpdateArgosUser(预期);
CreateDatRouterResult=actionResult.result为CreateDatRouterResult;
AppUser实际值=结果。值为AppUser;
//断言
断言.AreEqual(预期、实际);
}
[Test]
public void AddUser(){
    //Arrange
    AppUser expected = new AppUser();
    GreenCardController controller = new GreenCardController();

    //Act
    ActionResult<AppUser> actionResult = controller.UpdateArgosUser(expected);
    CreatedAtRouteResult result = actionResult.Result as CreatedAtRouteResult;
    AppUser actual = result.Value as AppUser;

    //Assert
    Assert.AreEqual(expected, actual);
}