我有一个不带参数的方法,可能会抛出异常。我想用Rhino模拟来测试这个行为,所以我这样做了:
Expect.Call(() => mymethod(null, null, out integer1, out integer2))
.IgnoreArguments().OutRef(1, 2).Throw(new Exception());但是很明显,异常是在out参数初始化之前抛出的。
是我做错了什么,还是这是正常的犀牛行为?您将如何解决此问题?
发布于 2011-10-27 20:11:48
这可能是Rhino.Mocks中的一个错误。我认为使用.Throw()方法意味着“当我调用这个方法时,抛出这个异常”。这就是它所做的一切--抛出异常。
我会重新设计代码,这样就不会期望out变量被初始化,和就会抛出异常。当我将一个方法包装在一个try/catch块中并捕捉到一个异常时,我假设这个方法可能已经死在任何地方,并且我不会对已经完成(或没有完成)的工作做任何假设。
也许代码可以分成两个方法?
https://stackoverflow.com/questions/7905369
复制相似问题