SpringBoot 集成JUnit

2020-02-09 16:05:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

SpringBoot 集成JUnit

 

项目太大,不好直接测整个项目,一般都是切割成多个单元,单独测试,即单元测试。

直接在原项目上测试,会把项目改得乱七八糟的,一般是单独写测试代码。

 

进行单元测试,这就需要集成JUnit。

 

 


 

 

(1)在pom.xml中添加JUnit的依赖

        <!--JUnit的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <!--指定作用域为test,此依赖只在test时起作用-->
            <scope>test</scope>
        </dependency>

使用骨架、Spring Initializr创建项目时,往往自动导入了Junit的依赖,看一下pom.xml中有没有,没有就导入。

注意要设置<scope>为test。

 

 


 

 

(2)在src/test/java中写单元测试

src/main/用来写项目,java放.java文件,resources放资源文件(根目录下放application.yml,static下放静态资源,templates下放模板引擎)。

src/test/用来写项目测试,java放单元测试,resources放资源文件。

 

把src/main/resources中的内容拷到src/test/resources,没有resources文件的就自己新建。

 

单元测试的类名一般是在原类名后加Test。

比如我要写com.chy.mapper.UserMapper的单元测试,在src/test/java下新建com.chy.mapper.UserMapperTest,包名保持一致,类名加Test。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)  //引导类的class对象
public class UserMapperTest {
    @Autowired  //自动注入要测试的类
    private UserMapper userMapper;

    @Test
    public void queryUserByIdTest(){
        //测试该类中的方法
        User user=userMapper.queryUserById(1);
        System.out.println(user);
    }

}

把要测试的类写成成员变量,使用@Autowired注入。

 

要测该类中的哪个方法,就写一个对应的方法来测试,在方法上标注@Test。

方法名一般是原方法名+Test。如果只测试一个方法,常把方法名直接写成test。

 

点左边的三角进行测试。

 

 


 

 

有些方法需要注入一些值,把要注入的值写成成员变量,对象用@Autowired注入,基本类型用@Value直接注入值。

 

如果需要在测试方法执行前后做一些处理:

    @Before
    public void before(){

    }

    @Test
    public void test(){
       
    }

    @After
    public void after(){

    }

这个测试类中的所有测试方法都会执行前处理、后处理。

 

 


 

 

一般要保留测试代码,比如要测试queryUserById()、updateUserById(),是写对应的2个测试方法,不是先写queryUserById()来测试,测完就在这个方法的基础上改改,改成其他方法的测试,不是这样的。

同理,测试类都是在对应位置写、单独写,包也要保留,这些测试合起来就是整个项目的测试。

 


原文链接:https://www.cnblogs.com/chy18883701161/p/12286998.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:idea代码神器:根据表生成代码

下一篇:并发队列之PriorityBlockingQueue