我正在使用 rhino mocks 3.5 并试图抛出异常以测试我的 catch block 中的某些功能。
但出于某种原因,它没有抛出异常。
_xyz.stub(x => x.function(string)).throw(new exception("test string"));
因此,我将对抛出异常的函数的调用 stub ,但它并没有抛出异常。
最佳答案
我不确定为什么它对您不起作用。我创建了一个小示例,它对我来说效果很好。看看这段代码:
首先,我创建了要测试的代码。
public interface IXyz
{
void Foo();
}
public class Xyz : IXyz
{
public void Foo()
{
}
}
public class Sut
{
public void Bar(IXyz xyz)
{
xyz.Foo();
}
}
接下来我要创建一个测试方法。在这种情况下,我使用的是 MbUnit,但它应该适用于任何单元测试框架。
[Test]
[ExpectedException(typeof(ArgumentException), Message = "test string")]
public void BarFoo_Exception()
{
IXyz xyzStub = MockRepository.GenerateStub<IXyz>();
xyzStub.Stub(x => x.Foo()).Throw(new ArgumentException("test string"));
new Sut().Bar(xyzStub);
}
希望对您有所帮助。
关于c# - 如何在 new rhino mocks 3.5 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007819/