如何在springboot项目中进行的test测试,以及出现(1)java: 找不到符号和(2)java.lang.IllegalStateException的解决方案 您所在的位置:网站首页 java里面找不到符号了 如何在springboot项目中进行的test测试,以及出现(1)java: 找不到符号和(2)java.lang.IllegalStateException的解决方案

如何在springboot项目中进行的test测试,以及出现(1)java: 找不到符号和(2)java.lang.IllegalStateException的解决方案

2024-07-14 04:31| 来源: 网络整理| 查看: 265

文章目录 前言1 导入与测试相关的pom依赖2 构建test测试类UserServiceTest3 导入@RunWith和@SpringBootTest4 测试结果5 Bug分析Bug1:java找不到符号Bug2:java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

前言

本文的主要内容: 在springboot项目中,如何在test包中进行项目部分的功能测试。以及个人在做项目过程中,遇到的两个Bug:

java: 找不到符号java.lang.IllegalStateException

文中分析了这两个异常为什么会出现,并提供了对应的解决方案。 本文的项目结构: 在这里插入图片描述 本文测试的项目,是基于maven搭建的一个springcloud项目。该项目有两个子服务,文中以user-service为例。 本文的测试单元: 在这里插入图片描述 在user-service服务中,其service层有一个方法findByid(Long id),该方法的功能很简单:通过id去查询数据库,并返回一个用户信息。

@Service public class UserService { @Autowired UserMapper userMapper; public User findByid(Long id){ return userMapper.findByid(id); } }

那么如何在test包中测试该功能是否可以执行成功呢?

1 导入与测试相关的pom依赖 junit junit test org.springframework.boot spring-boot-test org.springframework spring-test 2 构建test测试类UserServiceTest

在这里插入图片描述 在test中创建对应的测试类UserServiceTest。并使用如下代码:进行测试。

注入UserService对象;创建测试方法testFindUserById();输入Long id进行测试。 public class UserServiceTest { @Autowired UserService userService; @Test public void testFindUserById(){ User byid = userService.findByid(1L); System.out.println(byid); } } 3 导入@RunWith和@SpringBootTest @RunWith(SpringRunner.class) @SpringBootTest(classes = UserApplication.class)

在测试类的上方加入,结果如下:

@RunWith(SpringRunner.class) @SpringBootTest(classes = UserApplication.class) public class UserServiceTest { @Autowired UserService userService; @Test public void testFindUserById(){ User byid = userService.findByid(1L); System.out.println(byid); } } 4 测试结果

成功执行 在这里插入图片描述

5 Bug分析 Bug1:java找不到符号

问题分析: 测试类UserService(main包下)和被测试类UserService(test包下)的名字相同。 在这里插入图片描述

public class UserService { @Autowired UserService userService; @Test public void testFindUserById(){ User byid = userService.findByid(1L); System.out.println(byid); } }

在这里插入图片描述 从报错信息可以看出,注入的对象:为test中的UserService对象。 解决方案: 修改测试类中的类名称,与测试的类名称不相同即可。

Bug2:java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

问题分析: 在pom中,导入spring-test时,自动选择的版本和当前环境版本不一致。 在这里插入图片描述 在External Libraries中也可以看出。5.3.29与5.2.13发生版本冲突。 在这里插入图片描述 解决方案: 修改测试类的版本,使其和环境一致即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有