NUnit:在调试模式下而不在运行模式下引发异常

时间:2019-01-31 05:46:42

标签: c# unit-testing exception-handling nunit moq

使用Moq,我为服务类编写了一个单元测试用例以测试抛出的异常,我想介绍以下服务代码行(默认用例),因此我使用了“ Assert.Throws”选项验证抛出的参数异常。

但是这里的问题是,当我调试该测试用例时,它的引发参数异常和断言被传递了,但是如果我运行此测试用例,则结果为null,因此断言失败。我哪里做错了?这是什么问题?

我的服务班级代码:

 ...
 case 1 /*TEXT*/:
 case 2 /*SINGLESELECT*/:
    return new string[] { stringValue ?? "" };
 default:
    throw new ArgumentException("Invalid SettingInputTypeId");

我的测试用例:

...
var ex = Assert.Throws<ArgumentException>(() => testScenario.Service.GetSettingDefinitions(user, accordion, (int)SettingLevel.Organization, org.OrganizationId, 1));
Assert.That(ex.Message, Is.EqualTo("Invalid SettingInputTypeId"));

测试失败原因:

Message: Expected result to be <System.ArgumentException>, 
But was null

0 个答案:

没有答案