繁体   English   中英

如何测试 Java Mockito 中其他方法中的方法调用?

[英]How to test a method call in other method in Java Mockito?

如何用 Mockito 测试在其他方法中调用了某些方法? 在我的例子中,它是 Collections.reverse(tasks) 在下面的 class 中:

我的class:

public class TaskReadService {

private final TaskRepository repository;

public TaskReadService(TaskRepository repository) {
    this.repository = repository;
}

public List<Task> readAllOrdered(TasksListOrder order) {
  
    var tasks = repository.readAll();       

    if (order.equals(TasksListOrder.BY_STATUS)) {

        tasks.sort(Comparator.comparing(jpaEntity -> jpaEntity.status));
    }

    if (order.equals(TasksListOrder.BY_PRIORITY)) {

        tasks.sort(Comparator.comparing(jpaEntity -> jpaEntity.priority));
    }

    Collections.reverse(tasks);

    return tasks;
}}

如评论中所述,您无需验证对Collections#reverse的调用。 您的测试代码不应该关心这个,而是应该关注返回的结果,应该断言正确性(即正确的内容、顺序等)。

现在关于如何验证方法调用的问题,对 Mockito 文档的简单访问显示了Mockito#verify方法的用法,这正是您进行方法验证所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM