![](/img/trans.png)
[英]How do I unit-test the controller of a Spring Boot application with a DataSource dependency in a @ComponentScan @Configuration
[英]How do I create configuration object in a unit test in my dropwizard application?
我們的dropwizard應用程序中有一個配置類:
public class MyConfiguration extends Configuration
我需要通過讀取yaml文件在單元測試中創建真實的配置對象。 任何指針都有用嗎?
看起來當啟用dropwizard應用程序時,應用程序將讀取yaml配置文件並創建MyConfiguration,但是在運行簡單的單元測試時我想要一個真實的(非模擬的)配置對象。
謝謝。
將以下內容添加到pom的build部分,以包含YAML配置文件作為測試資源:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
<testResource>
<directory>${project.basedir}</directory>
<includes>
<include>config.yml</include>
</includes>
</testResource>
</testResources>
然后在您的單元測試中創建一個Configuration對象,如下所示:
import javax.validation.Validator;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jersey.validation.Validators;
import io.dropwizard.configuration.YamlConfigurationFactory;
// ...
@Test
public void test() {
final ObjectMapper objectMapper = Jackson.newObjectMapper();
final Validator validator = Validators.newValidator();
final YamlConfigurationFactory<MyConfiguration> factory = new YamlConfigurationFactory<>(MyConfiguration.class, validator, objectMapper, "dw");
final File yaml = new File(Thread.currentThread().getContextClassLoader().getResource("config.yml").getPath());
final MyConfiguration configuration = factory.build(yaml);
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.