使用Moq模拟一个将在第一次调用时引发异常,然后在第二次调用时成功的方法的最简洁方法是什么?
最佳答案
我将使用Callback
并增加一个计数器来确定是否从Callback
引发异常。
[Test]
public void TestMe()
{
var count = 0;
var mock = new Mock<IMyClass>();
mock.Setup(a => a.MyMethod()).Callback(() =>
{
count++;
if(count == 1)
throw new ApplicationException();
});
Assert.Throws(typeof(ApplicationException), () => mock.Object.MyMethod());
Assert.DoesNotThrow(() => mock.Object.MyMethod());
}
public interface IMyClass
{
void MyMethod();
}
关于c# - 最小起订量:设置一个模拟方法在第一次调用时失败,在第二次调用时成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7045508/