import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@SuppressWarnings("unchecked")
class ExceptionTest {
@Test
void test() {
// mock creation
List
data = Mockito.mock(List.class);
// stubbing, 调用方法抛出异常
Mockito.when(data.get(0)).thenThrow(NullPointerException.class);
Mockito.doThrow(NullPointerException.class).when(data).get(1);
// verification
Assertions.assertThrows(NullPointerException.class, () -> data.get(0));
Assertions.assertThrows(NullPointerException.class, () -> data.get(1));
– 更多参见:
Mockito 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-08-15
– Written by ShangBo on 2019-08-15
– End
我们不仅可以在thenThrow()或者doThrow() 中模拟
异常
类,还可以模拟
异常
对象。使用
Mockito
模拟
异常
,以MyDictionary类为例进行介绍。如果方法返回类型是void,则使用doThrow来模拟
异常
。
OC
Mockito
是
Mockito
的Objective-C实现,支持模拟对象的创建,验证和存根。
与其他模拟框架的主要区别:
模拟对象始终是“不错的”,记录它们的调用,而不是抛出未指定调用的
异常
。 这使得
测试
不那么脆弱。
没有期望运行验证,使
测试
更具可读性。 模拟对象记录其调用,然后验证所需的方法。
验证失败报告为单元
测试
失败,它标识特定的行而不是引发
异常
。 这样可以更轻松地识别故障。
让我们验证一些行为!
// mock creation
NSMutableArray *mockArray = mock([ NSMutableArray class ]);
// using moc
而是需要先doThrow 并且写完类名之后不能直接 点 方法,而是需要用括号括起来,再 点 方法
doThrow (new XXXException ()).when(testService).saveName(any());
使用when().thenThrow()方法
@Test
public void whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown() {
when(dictMock.getMeaning(anyString()))
.thenThrow(NullPointerException.class);
dictMock.getMeaning("word");
淘系的技术发展已经有相当一段历史了,在历史的长河中总能沉淀出很多复杂的巨型项目,包罗多个业务,而且往往服务依赖比较复杂;再加上一些特殊环境变量的设置,想要在本地运行、debug 自测这种...
Mockito
提供了一个模拟抛出
异常
的功能, 因此可以
测试
异常
处理。查看下面的代码段。//add the behavior to throw exception
doThrow(new Runtime Exception("divide operation not implemented"))
.when(calcService).add(10.0,20.0);
在这里, 我们向模拟对象添...
Mockit是一个开源mock框架,官网:http://
mockito
.org/,源码:https://github.com/
mockito
/
mockito
要使用Mockit,首先需要在我们工程中引入对应的jar包,对于maven工程而言,需要添加如下依赖项即可:
org.
mockito
mockito
-core
2.0.5-beta
而在我们实际使用时,为了组织
Mockito
,针对方法void 返回值 mock
测试
正常调用,抛出
异常
正常调用doNothing().when(xxxService).methodName(any());
eg:doNothing().when(UserService).insert(any());
抛出
异常
doThrow(new RuntimeException()).when(xxxService).methodNa...