JUnit单元测试1—入门基础

2019-09-26  本文已影响0人  莫问君心

单元测试又名模块测试,是对软件设计最小单元进行白盒测试验证,一般在修改代码后都需要执行一次单元测试,以确保程序功能正确。
现在主流开源软件提交代码合入请求时都需要提供相应的单元测试代码,越来越多的大型企业对其产品的单元测试代码覆盖率有着明确的要求(常见覆盖率要求50% ~ 80%)。

软件准备

我们以Maven构建Java程序为例,只需在pom.xml中添加对JUnit 4的依赖即可:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

单元测试的一般性约束

JUnit单元测试的方法注解

如果需在运行时动态决定是否要忽略测试方法,可借助Assume.assumeTrue方法实现。

Assert断言

断言用于标识某一具体状态下程序验证与开发者预期结果是否一致,如果断言成功则测试方法可以继续执行,否则测试方法将会失败。
JUnit提供了多种断言方法:failassertTrueassertEqualsassertNull,示例如下:

assertTrue(list.isEmpty());

示例程序

被测代码:HelloWorld.java

public class HelloWorld {
    public String sayHello(String name) {
        return "hello:" + name;
    }
}

测试代码:HelloWorldTest.java

import static org.junit.Assert.*;

import org.junit.BeforeClass;
import org.junit.Test;

public class HelloWorldTest {
    private static HelloWorld helloWorld;

    @BeforeClass
    public static void initHelloWorld() {
        helloWorld = new HelloWorld();
    }

    @Test
    public void testSayHello() {
        assertEquals("hello:world", helloWorld.sayHello("world"));
    }
}

使用mvn test命令执行测试:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running HelloWorldTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.129 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

下一篇:JUnit单元测试2—测试框架

上一篇 下一篇

猜你喜欢

热点阅读