日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解?

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

踩坑半天多,終于在網上尋覓到了解決方案,特此分享一下。

重要前提:src/main/java下的根包名必須和src/test/main的根包名完全一致,否則就會發生死活不能注入的情況,要繼續進行下面的步驟,請先確認這個重要前提。

再接下來就是常規配置了。

pom.xml增加依賴spring-boot-starter-test,它會引入JUnit的測試包:

org.springframework.boot

spring-boot-starter-test

test

然后給需要注入的類增加Component或是Service注解:

@SpringBootApplication

@Componentpublic class WebhookApplication implementsCommandLineRunner {private final Logger logger = LoggerFactory.getLogger(WebhookApplication.class);//Proxy server(from application-dev(stg,prod,qa).yml)

@Value("${webhook.proxy}")privateString proxy;public voidsetProxy(String proxy) {this.proxy =proxy;

}

...

}

@Servicepublic classWebhookService {private final Logger logger = LoggerFactory.getLogger(WebhookService.class);

...

}

寫Component或是Service注解目的是能讓這些類可以被Autowired方式輸入。

再往下就是寫測試類了:

@RunWith(SpringRunner.class)

@SpringBootTestpublic classWebhookApplicationTest {

@Autowiredprivate WebhookApplication app=null;

@Autowiredprivate WebhookService service=null;

@Testpublic voidtest() {

Assert.assertNotNull(app);

}

@Testpublic voidtest2() {

Assert.assertNotNull(service);

}

...

}

其中SpringRunner是Spring結合JUnit的運行器,說明這里可以進行JUnit測試。

注解@SpringBootTest是可以配置SpringBoot的關于測試的相關功能。

完事以后,運行test或是test2,能發現app或是service不為空了,這說明注入正確了。

--2020-04-09--

參考資料二:《深入淺出SpringBoot2.x》楊開振著

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。