所以我对控制器动作进行了以下单元测试(MVC 5)。测试的目的是确保控制器的Edit操作返回类型为Contact
的模型:
[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 :(得分:1)
如果你正在测试var result
并且测试必须是否定,如果它是== null
,在这种情况下,你将防止错误像条件访问一样被触发你防止潜在的NullPointerException
Assert.IsNotNull(result);
毕竟不是那么糟糕:)!