【发布时间】:2011-05-04 02:46:37
【问题描述】:
我有一个定义为
的接口interface IMath
{
AddNumbersBetween(int lowerVal, int upperVal);
}
我可以为上述设置一个基本的起订量,如下所示:
Mock<IMath> mock = new Mock<IMath>();
mock.Setup(m => m.AddNumbersBetween(It.IsAny<int>(), It.IsAny<int>()));
叫它
mock.Object.AddNumbersBetween(1,4);
然后验证它是否被调用
mock.Verify(m => m.AddNumbersBetween(1,4), Times.AtleastOnce());
我不知道如何设置 AddNumbersBetween 方法,如果 upperVal 低于 lowerVal 则会引发异常
mock.Object.AddNumbersBetween(4,1);//should throw an exception
基本上是在寻找类似的东西:
mock.Setup(foo => foo.AddNumbersBetween("arg1 is higher than arg2")).Throws<ArgumentException>();
【问题讨论】:
-
我建议简单地使用回调实现抛出异常的逻辑,因为这使您可以完全访问这两个参数。据我所知,参数匹配子句只能执行基于单个参数的逻辑。
标签: c# unit-testing moq