【发布时间】:2021-12-28 07:21:24
【问题描述】:
@CustomLog
@Data
@Configuration
@RequiredArgsConstructor
public class PersonalizationTasks {
private final CmdUtils cmdUtils;
@Value("${cmd.task-defaults.personalization-service-type}")
private String version;
@ExternalTaskSubscription(topicName = "personalization")
@Bean
public ExternalTaskHandler personalization() {
return (task, taskService) -> {
Long appId = task.getVariable("appId");
//other codes
taskService.complete(task);
};
}
}
当我尝试测试这个方法时,我的测试没有运行这个返回体。如何测试?
由 kriegaex 编辑: 可能 OP 使用 Camunda 接口 ExternalTaskHandler。
【问题讨论】:
-
是需要测试TestExtTask返回lambda,还是需要测试lambda的body?
-
lambda 的主体
-
@AyshanRzayeva,以后请多多关爱您的问题。我为您改进了代码格式和语法突出显示,还添加了指向您正在使用的 Camunda 类的链接。还请进一步编辑问题并完善它,将其转换为MCVE,以便每个人都可以重现您的问题。我们需要一个完整的最小应用程序和一个完整的测试。 SO 是一个 Q/A 平台,不是为了让其他人为你做你的工作,而是为了展示你拥有的代码,并就如何修复它提出具体的、可回答的问题。
-
我建议将 lambda 提取到适当的类中。生产代码不应该存在于配置类中,因为这使得测试变得更加困难。此外,注入的字段没有在 lambda 中使用,那么为什么它们会出现在配置类中?此外,如果没有实际的测试代码,我们不知道您在那方面做错了什么。
标签: java spring-boot groovy mocking spock