美文网首页
android 单元测试

android 单元测试

作者: 探索的码易 | 来源:发表于2019-11-14 14:09 被阅读0次

测试重要性

提高代码质量,对代码负责,提升代码,写作的能力

1.依赖

dependencies {
// Required -- JUnit 4 framework 飞机上的著作
testImplementation 'junit:junit:4.12'
// Optional -- Mockito framework用于模拟一些依赖对象,以达到隔离依赖的效果)
testImplementation 'org.mockito:mockito-core:2.19.0'
}

2. 测试方式

  1. 本地测试 jvm 测试
@Test
public void isValidEmail() {
    assertThat(EmailValidator.isValidEmail("#name@email.com"), is(true));
}

2 .真机测试

3 .本地Android框架 测试

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class MockUnitTest {
    private static final String FAKE_STRING = "AndroidUnitTest";

    @Mock
    Context mMockContext;

    @Test
    public void readStringFromContext_LocalizedString() {
        //模拟方法调用的返回值,隔离对Android系统的依赖
        when(mMockContext.getString(R.string.app_name)).thenReturn(FAKE_STRING);
        assertThat(mMockContext.getString(R.string.app_name), is(FAKE_STRING));
        
        when(mMockContext.getPackageName()).thenReturn("com.jdqm.androidunittest");
        System.out.println(mMockContext.getPackageName());
    }
}

3. 注解

 Annotation
 描述




 @Test public void method()
 定义所在方法为单元测试方法


@Test (expected = Exception.class) public void method()
测试方法若没有抛出Annotation中的Exception类型(子类也可以)->失败


@Test(timeout=100) public void method()
性能测试,如果方法耗时超过100毫秒->失败


@Before public void method()
这个方法在每个测试之前执行,用于准备测试环境(如: 初始化类,读输入流等),在一个测试类中,每个@Test方法的执行都会触发一次调用。


@After public void method()
这个方法在每个测试之后执行,用于清理测试环境数据,在一个测试类中,每个@Test方法的执行都会触发一次调用。


@BeforeClass public static void method()
这个方法在所有测试开始之前执行一次,用于做一些耗时的初始化工作(如: 连接数据库),方法必须是static


@AfterClass public static void method()
这个方法在所有测试结束之后执行一次,用于清理数据(如: 断开数据连接),方法必须是static


@Ignore或者@Ignore("太耗时") public void method()
忽略当前测试方法,一般用于测试方法还没有准备好,或者太耗时之类的


@FixMethodOrder(MethodSorters.NAME_ASCENDING) public class TestClass{}
使得该测试类中的所有测试方法都按照方法名的字母顺序执行,可以指定3个值,分别是DEFAULT、JVM、NAME_ASCENDIN

相关文章

网友评论

      本文标题:android 单元测试

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