在此處輸入代碼我在 spring boot 中有一個用 @ConfigurationProperties 注釋的類,如何在 Junit 測驗中自動裝配這個 bean
@ConfigurationProperties
public class ConfigClass{
public String property;
}
--正在測驗中--
@RunWith(MockitoJunitRuner.class)
class MyTests{
@Autowired
private ConfigClass configClass;
@Test
public myTest1(){
String prop = configClass.getProperty();
//Some assert
}
-- 當我運行此測驗時,configClass 顯示為 null --
uj5u.com熱心網友回復:
使用 jUnit 測驗 springboot 您可以使用 @RunWith(SpringRunner.class) 或 @SpringbootTest 加載整個背景關系
如果您想專門測驗您的配置,請使用 @TestConfiguration 注釋。有兩種使用注解的方法要么在我們想要@Autowire bean 的同一測驗類中的靜態內部類上,要么創建一個單獨的測驗配置類:
我會選擇靜態類中的第一個選項
見下面的例子,
@ConfigurationProperties
public class ConfigClass{
public String property;
}
--Now under Test--
@RunWith(MockitoJunitRuner.class)
class MyTests{
@Autowired
private ConfigClass configClass;
**// here use the @TestConfiguration annotation not @Test**
@TestConfiguration
public myTest1(){
String prop = configClass.getProperty();
//Some assert
}
//好的,這有效,現在有另一個類似下面的類是測驗的一部分,并且 configClass 沒有在那里自動裝配,任何想法
注意:我建議使用第二個選項,它有 單獨的測驗配置類來自動連接所有類的配置,如下所示
@TestConfiguration
public YourTestConfigurationClass ()
{
// plus all the other code which worked
@Component
public class OtherClass{
@Autowired
private ConfigClass configClass;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366492.html