C#单元测试:使用条件访问而不是Debug.Assert是否可以?

时间:2016-11-22 10:04:32

标签: c# unit-testing mstest

所以我对控制器动作进行了以下单元测试(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");

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

1 个答案:

答案 0 :(得分:1)

如果你正在测试var result并且测试必须是否定,如果它是== null,在这种情况下,你将防止错误像条件访问一样被触发你防止潜在的NullPointerException

Assert.IsNotNull(result);

毕竟不是那么糟糕:)!