首页 > 解决方案 > 使用 ArgumentValidator.VerifyNotNullOrEmpty 进行单元测试

问题描述

我正在做单元测试。我有以下方法:

  public PortfolioFileGetListDto(string documentsCaseNumber)
        {
            ArgumentValidator.VerifyNotNullOrEmpty(documentsCaseNumber, nameof(documentsCaseNumber));

            CaseNumber = documentsCaseNumber;
        }

我尝试像这样对这种方法进行单元测试:

 [TestMethod]
        public void PortfolioFileGetListDto_Constructor_ShouldValidateParameters()
        {
            // Portfolio           
            Action act = () => new PortfolioFileGetListDto(null);
            act.Should().Throw<ArgumentNullException>().WithMessage("Value cannot be null.\n\rParameter name: portfolio");
        }

但是如果我调试单元测试,我会得到以下异常:

System.ArgumentNullException: 'Value cannot be null.
Parameter name: documentsCaseNumber'

那么如何通过这个单元测试呢?

谢谢

标签: c#unit-testing

解决方案


断言取决于您使用的单元测试框架。

对于 Microsoft 测试平台:

var exception = Assert.ThrowsException<Exception>(x => {
    new PortfolioFileGetListDto(null);
});
Assert.AreEqual("Value cannot be null.\n\rParameter name: portfolio", exception.Message);

推荐阅读