我有一个类似的课程:
public abstract class ClassA<T>
{
protected ClassA(IInterface interface)
{
if (interface== null)
{
throw new ArgumentNullException ("interface");
}
}
}
我想写一个测试,它验证如果我在抛出异常时传递null:
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public TestMethod()
{
ClassA classa = MockRepository.GenerateMock<ClassA<String>> (null);
}
但是测试会因异常而不是预期的异常而失败。我也尝试在try catch块中包装调用,但同样的问题。我试过GenerateStub和PartialMock。
我错过了什么?
答案 0 :(得分:2)
我自己最近遇到过这个问题,遗憾的是我无法找到任何方法告诉Rhino不要自己包装异常。到目前为止,我能想出的最好成绩如下:
[Test]
[ExpectedException(typeof(ArgumentNullException))]
public void TestMethod()
{
try
{
ClassA classa = _mocks.CreateMock<ClassA>(null);
}
catch (Exception e)
{
if (e.InnerException != null)
{
throw e.InnerException;
}
}
finally
{
_mocks.ReplayAll();
}
}