MOQ:传递给方法的抛出异常

时间:2017-07-13 14:27:06

标签: c# unit-testing moq

我在界面上有一个方法:

void HandleError(MyClasss c, object o, Exception e);

我想用MOQ模拟这个,以及抛出所提供的Exception e。

的任何参数

类似的东西:

_mock.Setup(a => a.HandlreError(It.IsAny<MyClass>(), It.IsAny<object>()
   , It.IsAny<Exception>())).Throws( [the 'any' exception] )

1 个答案:

答案 0 :(得分:5)

您可以使用回调操作,该操作使用传递给模拟对象的参数调用:

_mock
.Setup(a => a.HandlreError(It.IsAny<MyClass>(), It.IsAny<object>(), It.IsAny<Exception>()))
.Callback((MyClass c, object o, Exception e) => { throw e; });