首頁  >  文章  >  Java  >  springboot單元測試依賴踩坑實例源碼分析

springboot單元測試依賴踩坑實例源碼分析

王林
王林轉載
2023-05-23 19:01:291297瀏覽

springboot單元測試依賴踩坑

在進行springboot單元測試的時候,發現如下錯誤。

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

    在org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapptilootstrapUtils.createCacheAwareContextLoaderDelegate(Bootstraptil createBootstrapContext (BootstrapUtils.java:72)
   位於org.springframework.test.context.TestContextManager.(TestContextManager.java:124)
   位於org.springframework.test.context.124)
   位於org.springframework.test.context.124)##J4atef54.50645545 月.Uni54 .java:151)
   位於org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:142)
   位於org.springamework.test.context. >(SpringRunner.java:49)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NsunativeConplector p. DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
   位於java.lang.reflect.Constructor.newInstance(Constructor.java:423)
   位於java.junit.interm. 104)
    在org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    在org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder#:25 org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    在org.junit.runners.model.RunnerBuilder.safeRunnerForClass(Runnerjunit.runners.model.RunnerBuilder.safe requests.ClassRequest.getRunner(ClassRequest.java:33)
   位於org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
   位於com.intellij.junit4.JUnit4.TRun​​fRunun​​fRun​​fRunun​​f54.JUnit4 java:49)
    位於com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    位於com。 java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
引起:org.springframework.beans.BeanInstantiationException:無法實例化[org.springamework work.beans.BeanInstantiationException:無法實例化[org.springamework work. .context.cache.DefaultCacheAwareContextLoaderDelegate]:無法解析的類別定義;嵌套異常是java.lang.NoSuchMethodError: org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
    在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.5:132 beans .BeanUtils.instantiateClass(BeanUtils.java:152)
    at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:100)d lang .NoSuchMethodError: org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
    在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.springframework.beans.BeanUtils.instantiateClass(BeanUtils.javaans:171) 是BeanUtils .java:122)
    ... 22 more


一天以前單測是能跑的,初步預計是依賴的問題。由於專案間採用了多模組結構,模組的引用座標,因此需要逐一檢查每個模組是否有問題。

如下步驟

1.在出現問題的單測歸屬模組的pom檔案中,找到所有模組依賴

#2.依序到各模組進行單元測試,定位問題模組
  • 3.查問題模組的依賴問題
  • 一番排折騰,發現問題模組Carrier-api
  • 再往下研究,檢查Carrier -api依賴

#幸運,問題的查找迅速發現,是由於spring-web的引用導致的錯誤。下面的引用註解掉了,並將相關程式碼進行引用替換。springboot單元測試依賴踩坑實例源碼分析

問題解決

springboot單元測試依賴踩坑實例源碼分析

#

以上是springboot單元測試依賴踩坑實例源碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除