凯发k8天生赢家一触即发

spring整合junit的方法是什么 -凯发k8天生赢家一触即发

2023-11-17

专为编程打造,自动写代码机器人,免费开通

本文小编为大家详细介绍“spring整合junit的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“spring整合junit的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

spring整合junit

1. spring对junit4的支持

准备工作:pom.xml

注:以前是直接使用单元测试junit,现在使用spring对junit的整合!



    4.0.0
 
    com.bjpowernode
    spring6-014-junit
    1.0-snapshot
    jar
 
    
    
        
        
            repository.spring.milestone
            spring milestone repository
            https://repo.spring.io/milestone
        
    
 
    
        
        
            org.springframework
            spring-context
            6.0.0-m2
        
 
        
        
            org.springframework
            spring-test
            
            6.0.0-m2
        
 
        
        
            junit
            junit
            4.13.2
            test
        
    
 
 
    
        17
        17
    
 

声明bean

package com.bjpowernode.spring6.bean;
 
import org.springframework.beans.factory.annotation.value;
import org.springframework.stereotype.component;
 
@component("user") // 纳入spring管理
public class user {
    @value("张三") // 通过注解的方式进行赋值
    private string name;
 
    public user(string name) {
        this.name = name;
    }
    public user() {
    }
 
    @override
    public string tostring() {
        return "user{"  
                "name='"   name   '\''  
                '}';
    }
 
    public string getname() {
        return name;
    }
 
    public void setname(string name) {
        this.name = name;
    }
}

spring.xml配置



    
    
    

单元测试:

①以前的写法

package com.bjpowernode.spring6.test;
 
import com.bjpowernode.spring6.bean.user;
import org.junit.test;
import org.springframework.context.applicationcontext;
import org.springframework.context.annotation.annotationconfigapplicationcontext;
import org.springframework.context.support.classpathxmlapplicationcontext;
 
public class springjunit4test {
    @test
    public void testuser1(){
        applicationcontext applicationcontext = new classpathxmlapplicationcontext("spring.xml");
        user user = applicationcontext.getbean("user", user.class);
        system.out.println(user.getname());
    }
}

②使用spring对junit4的支持写法

(1)使用两个注解:

①@runwith(springjunit4classrunner.class),这个注解是junit里面的;

②@contextconfiguration("classpath:spring.xml"),这个注解时spring框架里面的;

使用这两个注解就相当于new classpathxmlapplicationcontext("spring.xml");

(2)并且对于applicationcontext.getbean("user", user.class);这段代码,我们可以先定义一个user属性,例如:private user user,然后使用@autowired注解一注入即可

(3)所以我们以后在编写测试代码,如下:

package com.bjpowernode.spring6.test;
 
import com.bjpowernode.spring6.bean.user;
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit4.springjunit4classrunner;
 
@runwith(springjunit4classrunner.class)
@contextconfiguration("classpath:spring.xml")
public class springjunit4test {
 
    @autowired
    private user user;
 
    @test
    public void testuser2(){
        system.out.println(user.getname());
    }
}

执行结果

在junit4当中,spring提供的方便主要是这几个注解:

①@runwith(springjunit4classrunner.class)
②@contextconfiguration("classpath:spring.xml")

单元测试类上使用这两个注解之后,在单元测试类中的属性上可以使用@autowired,比较方便!

2. spring对junit5的支持

引入junit5的依赖,spring对junit支持的依赖还是:spring-test,如下:


     org.junit.jupiter
     junit-jupiter
     5.9.0
     test

单元测试类

package com.bjpowernode.spring6.test;
 
import com.bjpowernode.spring6.bean.user;
import org.junit.jupiter.api.test;
import org.junit.jupiter.api.extension.extendwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit.jupiter.springextension;
 
@extendwith(springextension.class)
@contextconfiguration("classpath:spring.xml")
public class springjunit5test {
    @autowired
    private user uer;
    @test
    public void testuser(){
        system.out.println(uer.getname());
    }
}

在junit5当中,可以使用spring提供的以下两个注解,标注到单元测试类上,这样在类当中就可以使用@autowired注解了。

①@extendwith(springextension.class)

②@contextconfiguration("classpath:spring.xml")

总结:对于spring对junit4和junit5的支持当中,代码主要有两点不同:

第一点:引入的注解不同

对于junit4引入的一个注解是@runwith(springjunit4classrunner.class)

对于junit5引入的一个注解时@extendwith(springextension.class)

第二点:使用@test注解的时导入的包不同

对于junit4导入的包时org.junit.test

对于junit5导入的包时org.junit.jupiter.api.test

读到这里,这篇“spring整合junit的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注本站行业资讯频道。

网站地图