关于java平台的单元测试问题

解决方案背景

在开发中,经常会用到需要试运行,需要测试,以及新的内容需要摸索的场景,重新启一个项目,有点太浪费,在已有的代码中搞就显得很乱。这时候单独的单元测试模块就显得很有必要了。单元测试的场景往往有两个,一个是单独的单元测试,另一个是依附于框架的单元测试,比如springboot。

参考资料

https://www.cnblogs.com/lingshang/p/10950947.html junit单元测试单独使用
https://www.jb51.net/article/150184.htm springboot整合junit单元测试

解决方案

独立单元测试

独立单元测试的使用场景往往测试的对象是脱离框架的,比如单独的算法,仅依赖jdk的业务模块等。以maven风格的项目为例,只需要在test目录下创建测试类,然后使用@Junit注解,就可以实现单个类,运行多个方法的测试场景。注意junit的导包,是org.junit.Test,不要用错了。pom文件中只导入junit包就行了。

import org.junit.Test;
public class CalculatorTest {

    @Test
    public void calculate() {
        assertEquals(3, new Calculator().calculate("1 + 2"));
        assertEquals(3, new Calculator().calculate("1 + 2 + 3"));
    }
}

当然junit的场景应用不止于此,还有一些比如超时啊,抛出异常的处理之类的,需要看参考资料就行了。

整合springboot

整合springboot的场景可以理解为测试的场景需要以来框架,框架不启动,就没办法测试。这种场景就需要用到框架和junit的整合了,以junit和springboot为例。首先在maven的pom文件中,增加相关的依赖。如果是Spring Boot项目默认已经加入了JUnit框架支持。

 <dependency>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-starter-testartifactId>
  <scope>testscope>
dependency>

使用的时候,需要增加注解,将junit与springboot整合。

@RunWith(SpringRunner.class)
@SpringBootTest
public class SimpleTest {

  @Test
  public void doTest() {
    int num = new Integer(1);
    Assert.assertEquals(num, 1);
  }
}

你可能感兴趣的:(java技术栈,单元测试,java)