2016-11-22 19 views
0

所以我有一个控制器操作(MVC 5)的以下单元测试。测试的目的是为了确保控制器的编辑操作将返回Contact类型的模型:C#单元测试:可以使用条件访问而不是Debug.Assert吗?

[TestMethod] 
    public void Edit_ValidContactIdPassed_ShouldReturnEditViewWithContact() 
    { 
     var result = _controller.Edit(1) as ViewResult; 
     result?.ViewData.Model.Should().BeOfType<Contact>(); 
    } 

正如你可以看到我使用的,而不是有条件接入result对象(?):

 Debug.Assert(result != null, "result != null"); 

我认为条件访问更具可读性,但在单元测试的上下文中是否存在任何问题?

+0

看起来像这个问题http://codereview.stackexchange.com/ – tym32167

+0

这取决于你的测试正在测试。如果规范说明必须总是有结果,那么检查null可能会隐藏一个错误。 –

+0

这个测试的目的是什么?真正阅读如何构建适当的方法名称。 – mybirthname

回答

1

那么,如果你正在测试的var result和测试必须如果是在这种情况下,你会阻止该错误被解雇作为与条件接入== null你防止潜在NullPointerException

Assert.IsNotNull(result); 

毕竟这不是那么糟糕:)!

相关问题