zoukankan      html  css  js  c++  java
  • 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()来测试,测完就在这个方法的基础上改改,改成其他方法的测试,不是这样的。

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

  • 相关阅读:
    前端优化方法(全)
    前端工程化
    HTTP状态码
    TCP三次握手和四次挥手
    在浏览器输入url后并回车发生了哪些过程
    javascript异步编程
    为什么浏览器采用多进程模型
    LeetCode——最长回文子串?
    LeetCode——字符串的排列/找到字符串中所有字母异位词
    LeetCode——24 点游戏
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12286998.html
Copyright © 2011-2022 走看看