使用Mockito
1.gradle配置
testImplementation "org.mockito:mockito-core:2.+"
2.在需要测试的类中,点击右键->Go to->Test,android studio会跳出新建测试类的对话框。
image.png
3.编写测试代码
public class AdderImplTest{
@Test
public void add() {
/* //测试AdderImpl的add方法
AdderImpl mAdder=new AdderImpl();
assertEquals(0,mAdder.add(0,0));
assertEquals(0,mAdder.add(-1,1));
assertEquals(1,mAdder.add(0,1));
//assertEquals两值是否相等
//assertTrue assertFalse验证真与假
//assertNull assertNotNull 是否为空
//assertSame assertNotSame 是否是同一对象
//fail() fail(String) 直接抛出错误
assertTrue(true);
assertFalse(false);
Object aaa=null;
assertNull(aaa);
assertNotSame(new Integer(1),new Integer(1));
*/
//创建Mock对象
List<String> mockedList = mock(List.class);
//使用Mock
mockedList.add("one");
mockedList.clear();
//验证函数调用的次数
verify(mockedList).add("one");
verify(mockedList).clear();
//测试桩,在调用get(0)时返回“fist”
when(mockedList.get(0)).thenReturn("first");
//调用get(1)时抛出异常
when(mockedList.get(1)).thenThrow(new RuntimeException());
//此处返回first,因为 when(mockedList.get(0)).thenReturn("first");
System.out.println(mockedList.get(0));
//因为没有打桩,所以返回null
System.out.println(mockedList.get(100));
//此处抛出异常
//System.out.println(mockedList.get(1));
}
}
4.运行测试就可以了
5.同时运行多个测试用例
package com.yy.test;
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/* //注解的写法
@RunWith(Suite.class)
@Suite.SuiteClasses({
AdderImplTest.class
})*/
public class ExampleUnitTest {
@Test
public void execute(){
}
//方法的写法,如果用注解这个方法就不要了
public static junit.framework.Test sute(){
TestSuite suite=new TestSuite("com.yy.test");
//这里添加测试用例类
suite.addTest(new JUnit4TestAdapter(AdderImplTest.class));
return suite;
}
}
网友评论