问题描述
我正在尝试使用latest spring-cloud-stream docs通过推荐的基于Spring Integration的in-JVM代理来实现基本的单元测试。
这是一个基于gradle的项目,因此我将maven依赖项声明翻译为:
testImplementation 'org.springframework.cloud:spring-cloud-stream:3.0.7.RELEASE:test-binder'
处理器本身很简单,可以将一个原始对象转换为标准化对象。虽然尚未完成适当的测试,但处理器的输出仍是预期的:
@SpringBootApplication
public class SpringProcessorApplication {
public static void main(String[] args) {
SpringApplication.run(SpringProcessorApplication.class,args);
}
@Bean
public java.util.function.Function<KStream<String,RawLocationObservation>,KStream<String,normalizedLocationObservation>> process() {
Logger logger = LoggerFactory.getLogger(SpringProcessorApplication.class);
return input -> input
.mapValues(value -> {
....
虽然我最终计划测试输出是否已正确归一化,但在此阶段,我只是试图断言输出不为空:
@SpringBoottest
class SpringProcessorApplicationTests {
@Test
public void sampletest() {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration.getCompleteConfiguration(
SpringProcessorApplication.class))
.run("--spring.cloud.function.deFinition=process")) {
InputDestination source = context.getBean(InputDestination.class);
OutputDestination target = context.getBean(OutputDestination.class);
RawLocationObservation raw = new RawLocationObservation(...);
source.send(MessageBuilder.withPayload(raw).build());
assertNotNull(target.receive().getPayload());
}
}
运行测试,但似乎没有尝试超载默认的活页夹加载,因此该测试尝试尝试在localhost:9092连接到不存在的代理时超时(或在application.yml中配置的任何东西) )。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)