我想在junit静态类规则中访问资源/属性文件元素(在下面的代码中,其cardEventTopic
和cardEventErrorTopic
常量)。有什么办法可以做到这一点?由于元素已经存在于属性文件中,因此我不想将它们作为静态常量放入测试文件中。此外,@Value("${}")
不适用于静态上下文。如果有办法可以帮助您。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = PaymentAccountUpdaterApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.NONE)
@TestPropertySource(locations = "classpath:application-messaging.properties")
public class CardIntegrationTest {
private final static String cardEventTopic = "TP.PRF.CARDEVENTS";
private final static String cardEventErrorTopic = "TP.PAYMENTS.CARDEVENTS.ERRORS";
@ClassRule
public static KafkaEmbedded kafkaEmbedded =
new KafkaEmbedded(1, false, cardEventTopic, cardEventErrorTopic);
// rest of the code
}
答案 0 :(得分:0)
您可以通过类注释定义EmbeddedKafka,并在那里使用spEL定义主题:
@EmbeddedKafka(topics = {"${my.topic1}", "${my.topic2}"})
或者您可以在任意配置类中将embededKafka定义为单独的bean,并具有所需的所有属性。
别忘了自动接线。
@Autowired
private EmbeddedKafkaBroker embeddedKafka;