使用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