美文网首页
单元测试

单元测试

作者: waiwaaa | 来源:发表于2018-12-06 21:29 被阅读0次

    使用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;
        }
    }
    

    相关文章

      网友评论

          本文标题:单元测试

          本文链接:https://www.haomeiwen.com/subject/thbcgftx.html