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

C# unit tests: Is it OK to use conditional access instead of Debug.Assert?

所以我对控制器操作 (MVC 5) 进行了以下单元测试。测试的目的是确保控制器 returns 类型 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");

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

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

Assert.IsNotNull(result);

毕竟还不错:)!