我正在编写单元测试,并尝试仅在特定配置文件被专门激活时使用ExecutionCondition
来启用测试。
我创建了ExecutionCondition
。
class EnabledWithH2ExclusiveExecutionCondition implements ExecutionCondition {
@Override
public ConditionEvaluationResult evaluateExecutionCondition(
final ExtensionContext context) {
// check the environment
}
@Autowired
private Environment environment;
}
但是没有注入environment
。
我该怎么做?
答案 0 :(得分:1)
因为您的ExecutionCondition
是由JUnit5本身使用反射创建的,它不是由Spring管理的,所以@Autowired
将不起作用。
您可以调用SpringExtension.getApplicationContext()
来获取Spring Context,然后从中获取Environment
:
@Override
public ConditionEvaluationResult evaluateExecutionCondition(final ExtensionContext context){
Environment env = SpringExtension.getApplicationContext(context).getEnvironment();
// check the environment
}