Infra JUnit Jupiter 测试注解
当与 InfraExtension 和 JUnit Jupiter(即 JUnit 5 中的编程模型)结合使用时,支持以下注解:
@JUnitConfig
@JUnitConfig 是一个组合注解,它结合了 JUnit Jupiter 中的 @ExtendWith(InfraExtension.class) 和 Infra TestContext 框架中的 @ContextConfiguration。
它可以在类级别用作 @ContextConfiguration 的直接替代品。
关于配置选项,@ContextConfiguration 和 @JUnitConfig 之间的唯一区别是,组件类可以在 @JUnitConfig 中使用 value 属性声明。
以下示例显示了如何使用 @JUnitConfig 注解指定配置类:
-
Java
@JUnitConfig(TestConfig.class) (1)
class ConfigurationClassJUnitJupiterInfraTests {
// 类体...
}
| 1 | 指定配置类。 |
以下示例显示了如何使用 @JUnitConfig 注解指定配置文件的位置:
-
Java
@JUnitConfig(locations = "/test-config.xml") (1)
class XmlJUnitJupiterInfraTests {
// 类体...
}
| 1 | 指定配置文件的位置。 |
有关更多详细信息,请参阅 上下文管理 以及 @JUnitConfig 和 @ContextConfiguration 的 javadoc。
@JUnitWebConfig
@JUnitWebConfig 是一个组合注解,它结合了 JUnit Jupiter 中的 @ExtendWith(InfraExtension.class) 和 Infra TestContext 框架中的 @ContextConfiguration 以及 @WebAppConfiguration。
您可以在类级别将其用作 @ContextConfiguration 和 @WebAppConfiguration 的直接替代品。
关于配置选项,@ContextConfiguration 和 @JUnitWebConfig 之间的唯一区别是,您可以使用 @JUnitWebConfig 中的 value 属性声明组件类。
此外,您只能通过使用 @JUnitWebConfig 中的 resourcePath 属性来覆盖 @WebAppConfiguration 中的 value 属性。
以下示例显示了如何使用 @JUnitWebConfig 注解指定配置类:
-
Java
@JUnitWebConfig(TestConfig.class) (1)
class ConfigurationClassJUnitJupiterInfraWebTests {
// 类体...
}
| 1 | 指定配置类。 |
以下示例显示了如何使用 @JUnitWebConfig 注解指定配置文件的位置:
-
Java
@JUnitWebConfig(locations = "/test-config.xml") (1)
class XmlJUnitJupiterInfraWebTests {
// 类体...
}
| 1 | 指定配置文件的位置。 |
有关更多详细信息,请参阅 上下文管理 以及 @JUnitWebConfig、https://docs.today-tech.cn/today-infrastructure/docs/5.0-Draft.6-SNAPSHOT/javadoc-api/infra/test/context/ContextConfiguration.html[@ContextConfiguration] 和 @WebAppConfiguration 的 javadoc。
@TestConstructor
@TestConstructor 是一个类型级别的注解,用于配置如何从测试的 ApplicationContext 中的组件自动装配测试类构造函数的参数。
如果测试类上不存在或元存在 @TestConstructor,则将使用默认的 测试构造函数自动装配模式。
有关如何更改默认模式的详细信息,请参阅下面的提示。
但是请注意,构造函数上 @Autowired、@jakarta.inject.Inject 或 @javax.inject.Inject 的本地声明优先于 @TestConstructor 和默认模式。
|
更改默认的测试构造函数自动装配模式
可以通过将 从 TODAY Framework 5.3 开始,默认模式也可以配置为 JUnit 平台配置参数。 如果未设置 |
从 TODAY Framework 5.2 开始,@TestConstructor 仅支持与用于 JUnit Jupiter 的 InfraExtension 结合使用。
请注意,InfraExtension 通常会自动为您注册——例如,当使用诸如 @JUnitConfig 和 @JUnitWebConfig 之类的注解或来自 Infra App Test 的各种测试相关注解时。
|
@NestedTestConfiguration
@NestedTestConfiguration 是一个类型级别的注解,用于配置如何在内部测试类的封闭类层次结构中处理 Infra 测试配置注解。
如果测试类、其超类型层次结构或其封闭类层次结构中不存在或元存在 @NestedTestConfiguration,则将使用默认的 封闭配置继承模式。
有关如何更改默认模式的详细信息,请参阅下面的提示。
|
更改默认的封闭配置继承模式
默认的 封闭配置继承模式 是 |
Infra TestContext 框架 遵循以下注解的 @NestedTestConfiguration 语义。