抛出异常而不是返回默认值

时间:2011-06-16 07:32:53

标签: exception-handling mockito

我是Mockito的新手,想在单元测试中使用它。

我不喜欢的是使用Mockito.mock(Class<T>)创建的模拟为没有明确定义行为的方法返回默认值(如null)。相反,我希望他们在这种情况下抛出一个异常,所以我知道我需要添加这个定义。

我尝试了以下内容:

SomeType m = mock( SomeType.class, new ThrowsException( new SomeRuntimeException( ... ) ) );
when( m.a() ).thenReturn( ... );

m.a();  // ok
m.b();  // throws exception

但这不起作用,因为在调用when()期间已经抛出了异常。

还有其他方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:14)

替换

when( m.a() ).thenReturn( ... );

doReturn( ... ).when(m).a();