SpringBoot整合Junit

创建项目

idea创建空项目Empty Project。项目中创建模块,选择SpringBoot Initialize快速构建SpringBoot项目。
在这里插入图片描述
依赖这里什么也不用选择。
在这里插入图片描述
在这里插入图片描述
pom文件中默认有两个依赖:

  • spring-boot-starter springboot如果不导入任何依赖,默认的一个基础依赖。
  • spring-boot-starter-test springboot使用junit的测试依赖,默认也是导入的。
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

使用Junit

idea使用SpringBoot Initialize创建项目时,自动导入了spring-boot-starter-test测试依赖,如果是手动创建的Maven项目,注意要手动添加上这个依赖。
创建Dao要测试的类

public interface UserDao {
    public void save();
}
@Repository
public class UserDaoImpl implements UserDao {
    @Override
    public void save() {
        System.out.println("save success");
    }
}

打开测试类,在启动测试Dao组件。
在这里插入图片描述

@SpringBootTest
class Springboot02JunitApplicationTests {

    @Autowired
    private UserDao userDao;

    @Test
    void contextLoads() {
        userDao.save();
    }
}
测试输出:
save success

补充

如果我们将测试类更换个位置,会测试失败,像下面这样。
在这里插入图片描述
在运行测试程序,程序报错:

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, 
you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

错误原因

测试类启动时,会在自己所在包和父包中寻找带有@SpringBootConfiguration的启动类(@SpringBootConfiguration包含在@SpringBootApplication中),然后进行测试。我们将测试类转移位置后,测试类找不到SpringBoot的启动类,无法测试。

2种解决方法:

  • 测试类上使用@SpringBootTest(classes=…)或者@ContextConfiguration (classes=…) ,指定测试类启动类在哪里。
@SpringBootTest(classes = Springboot02JunitApplication.class)
class Springboot02JunitApplicationTests {
    @Autowired
    private UserDao userDao;

    @Test
    void contextLoads() {
        userDao.save();
    }
}

或者

@SpringBootTest()
@ContextConfiguration(classes = Springboot02JunitApplication.class)
class Springboot02JunitApplicationTests {
    @Autowired
    private UserDao userDao;

    @Test
    void contextLoads() {
        userDao.save();
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值