首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用spock测试lambda函数

用spock测试lambda函数
EN

Stack Overflow用户
提问于 2021-12-28 07:21:24
回答 1查看 243关注 0票数 0
代码语言:javascript
复制
@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

EN

回答 1

Stack Overflow用户

发布于 2021-12-28 10:25:15

由于ExternalTaskHandler是一个lambda,它有execute​方法,所以您需要用提供的参数来调用它,因此将执行lambda的主体,如下所示:

代码语言:javascript
复制
@Inject
private ExternalTaskHandler handler;

@Test
void shouldExecuteTask() {
    ExternalTask externalTask = mock(ExternalTask.class);
    ExternalTaskService externalTaskService = mock(ExternalTaskService.class);

    hanler.execute(externalTask, externalTaskService);
    verify(externalTaskService).complete(externalTask);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70503893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档