Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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
C# 如何在单元测试中检查模型属性_C#_Asp.net Mvc 3_Unit Testing_Razor_Moq - Fatal编程技术网

C# 如何在单元测试中检查模型属性

C# 如何在单元测试中检查模型属性,c#,asp.net-mvc-3,unit-testing,razor,moq,C#,Asp.net Mvc 3,Unit Testing,Razor,Moq,我有一个动作,如下所示: public ActionResult SaveAndExit() { ViewModel1 viewModel = new ViewModel1(); return View("Index", viewModel); } 在单元测试中,我想检查viewModel中的viewReg是否为null。有什么建议吗 测试: 单元测试应该测试业务逻辑。您不需要仅为检查某些属性是否为null而编写单元测试。我倾向于按如下方式编写断言(此处使用Microsoft

我有一个
动作
,如下所示:

public ActionResult SaveAndExit()
{
    ViewModel1 viewModel = new ViewModel1();

    return View("Index", viewModel);
}
在单元测试中,我想检查viewModel中的view
Reg
是否为null。有什么建议吗

测试:


单元测试应该测试业务逻辑。您不需要仅为检查某些属性是否为null而编写单元测试。

我倾向于按如下方式编写断言(此处使用Microsoft测试框架断言-您没有指定nunit):


那个断言很令人困惑。。。您正在检查某个内容是否为非空,然后检查结果是否为非空。这本身不起作用吗?Assert.IsNotNull(result.Model[“Reg”])正确。您正在调用Assert.IsNotNull(布尔值)@GazWinter这行代码是错误的。模型不允许访问其属性。感谢您可能正在修复一个bug,该bug在呈现视图时引发空引用异常。没有理由这不是一个“值得”的测试。@user1211185,我建议看一下。请确保此链接对您仍然有用。您好,在调试模型中,reg为null,但其引发的异常
Assert.IsNotNull失败。
@user1211185这就是Assert的要点。您正在断言Reg不是null,如果是,那么您的测试应该失败带有
Assert.IsNull(model.Reg)。。。。许多的thanks@user1211185很乐意提供帮助,但请确保这正是您希望代码所做的-不要只是修复测试lol。
//act
var result = controller.SaveAndExit(viewModel) as ViewResult;

//assert
//Assert.IsNotNull(!result.Model["Reg"].Equals(null));
// Act
ActionResult result = controller.SaveAndExit(viewModel);

// Assert
Assert.IsInstanceOfType(result, typeof(ViewResult));
ViewResult viewResult = (ViewResult)result;

Assert.IsInstanceOfType(viewResult.Model, typeof(ViewModel1));
ViewModel1 model = (ViewModel1)viewResult.Model;

Assert.IsNotNull(model.Reg);