Rhino . outref与.throw不兼容

本文关键字:不兼容 throw outref Rhino | 更新日期: 2023-09-27 18:12:23

我有一个没有参数的方法,可能会抛出异常。我想用Rhino模拟测试这种行为,所以我这样做:

Expect.Call(() => mymethod(null, null, out integer1, out integer2))
                 .IgnoreArguments().OutRef(1, 2).Throw(new Exception());

但是很明显,异常是在out形参初始化之前抛出的。

是我做错了什么还是这是正常的犀牛行为?你如何解决这个问题?

Rhino . outref与.throw不兼容

这可能是Rhino.Mocks中的一个bug。我认为使用.Throw()方法说"当我调用这个方法时,抛出这个异常"。这就是它所做的——抛出异常。

我将重新设计代码,以便不期望out变量被初始化抛出异常。当我在try/catch块中包装一个方法并捕获一个异常时,我假设该方法可能已经在任何地方死亡,并且我不做任何关于可能已经完成(或未完成)的工作的假设。

也许代码可以分成两个方法?