当前位置: 首页 > 知识库问答 >
问题:

Spring Boot 2和JUnit 5的正确配置

姜良哲
2023-03-14

使用Spring Boot 2.0.0.rc2。

@Configuration
@ConditionalOnProperty("launchdarkly.sdkKey")
public class LDClientConfiguration  {

    @Bean
    public LDClientInterface ldClient(LDClientConfigurationProperties props) {
        return new LDClient(props.getSdkKey(), props.getLDConfig());
    }
}
@Component
@ConfigurationProperties(prefix = "launchdarkly")
public class LDClientConfigurationProperties {

    private String sdkKey;
    // more attributes

    public void setSdkKey(String sdkKey) {
        this.sdkKey = sdkKey;
    }
    // more setters

    public LDConfig getLDConfig() {
        LDConfig.Builder builder = new LDConfig.Builder();
        // set builder w/ attributes
        return builder.build();
    }
}
launchdarkly:
    sdkKey: <redacted>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>${junit-jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-engine</artifactId>
        <version>${junit-platform.version}</version>
        <scope>test</scope>
    </dependency>

和junit-platform-surefire-provider配置在maven-surefire-pluginV2.19.1中

我似乎找不出合适的注释来让我的测试类读取src/Test/resources/application-test.yml中的配置。

我读过https://junit.org/junit5/docs/current/user-guide,但似乎仍然不能正确地得到注释。如有任何帮助,我们将不胜感激。

@SpringJUnitConfig(SpringBootContextLoader.class)
public class LDClientConfigurationPropertiesTest {

    @Autowired
    private LDClientConfigurationProperties props;

    @Test
    public void test() {
        LDConfig config = props.getLDConfig();
        assertThat(config, notNullValue());
    }
}

共有1个答案

黄锋
2023-03-14

Spring Boot2和JUnit5集成测试的正确注释集是(Kotlin):

@ExtendWith(SpringExtension::class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("dev") // optional
@TestInstance(TestInstance.Lifecycle.PER_CLASS) // optional

您可以通过字段上的@localserverport注释获得服务正在运行的端口。

 类似资料:
  • 我正在尝试使用 https://github.com/spring-projects/spring-security-oauth2-boot 使用本教程:https://docs.spring.io/spring-security-oauth2-boot/docs/current-SNAPSHOT/reference/htmlsingle/ SpringBoot应用程序 服务器初始化器 用户详细信

  • 我想知道,当我试图在数据库中创建并持久化对象时,处理异常的最佳方法。 因此,我有一个名为Rule的表,其中包含getter和setter: 我有一个方法create谁在数据库中添加对象: 我应该为每个异常使用多个catch吗?谁的方法可以抛出try块 如果我的解决方案是处理异常的好方法,那么如何才能以好的方式打印与异常相关的特定消息 如何在JUnit5中为块的内容引发异常,以测试是否引发了异常(我

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为JSON保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问。 以下是我目前使用Gson的方式: 以下是我当前尝试使用时收到的错误消息: 是我在开头

  • 我写了一个django网络应用程序,现在我需要把它翻译成英语。我遵循了文档,但我不断收到这个奇怪的错误: 在/i18n/setlang/settings处配置不正确。数据库配置不正确。请提供ENGINE值。有关详细信息,请查看设置文档。请求方法:POST请求URL:http://192.92.149.139:8000/i18n/setlang/Django版本:2.0.3异常类型:配置不正确的异常

  • 我无法正确获取此持久性文件...我在书中找不到任何更多的资料可供我参考。我用的是MySQL数据库。 编辑 严重:部署应用程序[VaadEntertainapp]时出现异常 Severe:org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:发现以元素“provider”开头的内容无效。应为“{”http://java.sun.com/xml/ns