Rhino .OutRef与.Throw不兼容?

时间:2011-10-26 15:55:53

标签: c# rhino-mocks

我有一个带out参数的方法,可能会引发异常。我想用Rhino模拟测试这种行为,所以我做:

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

但很明显,在out参数初始化之前抛出了异常。

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

1 个答案:

答案 0 :(得分:0)

这可能是Rhino.Mocks中的一个错误。我认为使用.Throw()方法说“当我调用此方法时,抛出此异常”。这就是全部 - 抛出异常。

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

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