在我的测试过程中,我面临着一个非常恼人的问题
弹簧防尘套
应用我有一个使用Kafka流并在专用
配置文件
.
@EnableKafka
@EnableKafkaStreams
@Configuration
public class KafkaStreamConfiguration {
@Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
public StreamsConfig kStreamsConfigs() {
// Omissis
}
@Bean
public KStream<String, String> kStream() {
// Omissis
}
}
我的应用程序还使用Spring公开了一个专用的RESTAPI
@RestController
. 我想单独测试这个rest控制器,如下所示。
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureMockMvc
public class RestControllerTest {
@Test
public void someFancyTest() {
// Omissis
}
}
问题是我无法避免Spring上下文来启动中定义的流
KafkaStreamConfiguration
班在执行期间,我没有找到任何方法将此类从Spring上下文中排除
RestControllerTest
.
我不想申报
KafkaEmbedded
中的实例
RestControllerTest测试
班在我看来这是胡说八道。
有可能吗?如何分割测试以保持某种独立性顺序?
应用程序类尽可能简单。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我使用的是Spring Boot版本1.5.8和Kafka版本0.10.2.1。