标签:mockito ut
前言
工作中测试框架使用的是Mockito,在网上看到很多人将其与EasyMock还有JMock进行比较,突出其简易和方便的特点。我的确觉得Mockito很方便而且使用简单,但是我没有用过EasyMock和JMock,所以主要来跟大家分享下我在工作中对于Mockito的认识。
正题
简介
Mockito是一个针对Java的mocking框架。相信大家都知道单元测试,所谓单元测试,就是需要突出其单元的特点即独立性。比如我们的一个Service类,里面肯定会调用一些Dao类。如果我们直接去测试Service的话就会去调用真实的Dao从而会连接数据库,这么一来只要dao失败了,Service肯定也会跟着失败,因为他们是耦合的,这是一个集成测试而不是单元测试。
Mockito这种框架的出现就是解决这个耦合问题,它可以Mock一个dao类,也就是我们不需要真正调用dao的方法,默认dao的方法都是成功的只需要根据我们的需求返回我们需要的值就Ok,这样我们就可以把焦点放到Service类里面的逻辑测试上面,从而实现了“单元”测试。
初识Mockito
引入Mockito
我们在使用Mockito之前先引入Mockito的类,由于它的方法都是static的,所以我们可以直接引入static的方法,这样在使用的时候就不用加上类名了,但是对于初用者我建议使用非static的,因为对其方法还不是很熟,加上类名方便熟悉其个方法。
import org.mockito.Mockito.*; 或者import static org.mockito.Mockito.*;
我们现根据Mockito的特点举出几个简单的示例:
import static org.mockito.Mockito.*;
import java.util.List;
import org.junit.Test;
public class TestMockito {
@Test
public void testMockito1() {
// mock creation
List mockedList = mock(List.class);
// using mock object
when(mockedList.get( 0 )).thenReturn( "first" );
mockedList.add("one");
mockedList.clear();
// 下面会输出“first”,因为前面设定了期望值
System.out.println(mockedList.get(0));
// 验证add方法是否在前面被调用了一次,且参数为“one”。clear方法同样。
verify(mockedList).add("one");
verify(mockedList).clear();
}
}
小结:
本篇只是让大家对Mockito有个初步的认识,后续我会介绍Mockito各个方法的使用以及我在工作中的应用。
Mockito-入门
标签:mockito ut
原文地址:http://blog.csdn.net/dandan8866/article/details/42293629