Idea关于Spring整合Junit测试类运行后报错的问题(已解决)

1.如题,报错以下问题

E:\develop\Java\jdk-17.0.5\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:E:\develop\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=54557:E:\develop\JetBrains\IntelliJ IDEA 2022.3.3\bin" -Dfile.encoding=UTF-8 -classpath "E:\develop\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar;E:\develop\JetBrains\IntelliJ IDEA 2022.3.3\plugins\junit\lib\junit5-rt.jar;E:\develop\JetBrains\IntelliJ IDEA 2022.3.3\plugins\junit\lib\junit-rt.jar;E:\develop\code\spring_15_spring_mybatis\target\test-classes;E:\develop\code\spring_15_spring_mybatis\target\classes;E:\develop\Java\apache-maven-3.9.1\mvn_resp\com\alibaba\druid\1.1.16\druid-1.1.16.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-context\5.3.24\spring-context-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-aop\5.3.24\spring-aop-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-beans\5.3.24\spring-beans-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-core\5.3.24\spring-core-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-jcl\5.3.24\spring-jcl-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-expression\5.3.24\spring-expression-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\com\mysql\mysql-connector-j\8.0.32\mysql-connector-j-8.0.32.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\com\google\protobuf\protobuf-java\3.21.9\protobuf-java-3.21.9.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-jdbc\5.3.24\spring-jdbc-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-tx\5.3.24\spring-tx-5.3.24.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\mybatis\mybatis-spring\2.0.2\mybatis-spring-2.0.2.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\junit\junit\4.12\junit-4.12.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;E:\develop\Java\apache-maven-3.9.1\mvn_resp\org\springframework\spring-test\6.0.8\spring-test-6.0.8.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.itheima.service.AccountServiceTest,testFindById

java.lang.IllegalStateException: Could not load CacheAwareContextLoaderDelegate [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]

    at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:104)
    at org.springframework.test.context.BootstrapUtils.createBootstrapContext(BootstrapUtils.java:77)
    at org.springframework.test.context.BootstrapUtils.resolveTestContextBootstrapper(BootstrapUtils.java:126)
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:113)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:152)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:143)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/core/io/support/SpringFactoriesLoader$FailureHandler
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:146)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:176)
    at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:101)
    ... 23 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/io/support/SpringFactoriesLoader$FailureHandler
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.<init>(DefaultCacheAwareContextLoaderDelegate.java:70)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.<init>(DefaultCacheAwareContextLoaderDelegate.java:86)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211)
    ... 26 more
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.support.SpringFactoriesLoader$FailureHandler
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    ... 34 more
 

 2.后面发现是springframework版本没有对应上,于是修改

 

 

 3.修改后成功运行

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您讲解一下Java Spring单元测试的实现,使用的IDE为IntelliJ IDEA。 首先,在项目中添加JUnitSpring Test依赖,可以在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.9.RELEASE</version> <scope>test</scope> </dependency> ``` JUnit是Java中最流行的测试框架之一,Spring Test为Spring框架提供了测试支持。 接下来,创建一个测试。在上使用`@RunWith(SpringJUnit4ClassRunner.class)`注解,该注解是JUnit提供的一个运行器,可以让测试Spring容器环境下运行。 在测试中使用`@ContextConfiguration`注解来指定Spring配置文件的位置,例如: ``` @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring/applicationContext.xml"}) public class UserServiceTest { //... } ``` 其中,`classpath:spring/applicationContext.xml`表示Spring配置文件的位置。 接着,可以使用`@Autowired`注解来注入需要测试的服务或DAO对象,例如: ``` @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring/applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; //... } ``` 在测试方法中,可以使用JUnit提供的各种断言方法来验证方法的正确性,例如: ``` @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring/applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; @Test public void testGetUserById() { User user = userService.getUserById(1); assertNotNull(user); assertEquals("张三", user.getName()); } } ``` 以上就是Java Spring单元测试的实现过程,希望对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值