簡體   English   中英

如何在我的dropwizard應用程序中的單元測試中創建配置對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM