Exception handling 抛出异常而不是返回默认值
我是Mockito的新手,希望在单元测试中使用它 我不喜欢的是使用Exception handling 抛出异常而不是返回默认值,exception-handling,mockito,Exception Handling,Mockito,我是Mockito的新手,希望在单元测试中使用它 我不喜欢的是使用Mockito.mock(Class)创建的mock为没有明确定义行为的方法返回默认值(比如null)。相反,我希望他们在这种情况下抛出一个异常,这样我就知道我需要添加这个定义 我尝试了以下方法: SomeType m = mock( SomeType.class, new ThrowsException( new SomeRuntimeException( ... ) ) ); when( m.a() ).thenReturn(
Mockito.mock(Class)
创建的mock为没有明确定义行为的方法返回默认值(比如null
)。相反,我希望他们在这种情况下抛出一个异常,这样我就知道我需要添加这个定义
我尝试了以下方法:
SomeType m = mock( SomeType.class, new ThrowsException( new SomeRuntimeException( ... ) ) );
when( m.a() ).thenReturn( ... );
m.a(); // ok
m.b(); // throws exception
但是这不起作用,因为在调用when()
时已经抛出了异常
是否有其他方法可以实现此目的?替换
当(m.a())。然后返回(…);
与
doReturn(…).when(m.a();
+1:有趣的用例!我从来没想过这个:-)谢谢!doReturn的javadoc解释了这两行之间的区别。这也正是我的情况。:-)我想知道Mockito没有提供一种方法来为未创建的方法抛出异常的原因是什么。使用ThrowsException+doReturn的默认答案确实有效,但它实际上意味着您永远不能使用“when”,这是首选方法。您的意思是:Mockito.doThrow(new RuntimeException()).when(m.a();如果你解释一下,这个答案会有用得多。