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

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

  • 相关阅读:
    Script:Generate A DDL Script For A Table
    如何在windows vista/2008/7中 安装Oracle OMS 即Grid Control
    Sqlserver2005迁移至Oracle系列之五:角色、用户、及权限
    Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:SQL模式
    Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:如何使用系统变量?
    Mysql:临时表、表变量
    Sqlserver2005迁移至Oracle系列之四:在Oracle中创建位或运算函数bitor
    flex 图片旋转
    基于模板和XML在BS结构应用中生成word文件
    操作图片文件写入word
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12286998.html
Copyright © 2020-2023  润新知