小编Aar*_*ron的帖子

Mockito.eq 匹配器似乎与列表引用匹配,而不是值匹配

我在类addToClonedList(List)中有一个方法App调用add(List)类中的方法Dependency。我想要进行单元测试addToClonedList(List),并且想要创建一个模拟Dependency对象(称为)并验证是否使用正确的参数调用mockDependency该方法。mockDependency.add(List)但是,由于List引用的实例在相关调用之后clonedList将一个新元素 ( 100) 添加到 if ,因此 Mockito 认为 2 元素List已传递给mockDependency,并且测试失败。实际上,调用时List传递给的仅包含一个元素。mockDependency.add(List)这是预期的 Mockito 行为吗?有没有更标准的方法来测试我已经通过了正确的List方法mockDependency.add(List)

请参阅下面的代码结构和测试输出:

主/java/App.java:

import java.util.*;

public class App {
  Dependency dataLayer = new Dependency();

  void addToClonedList(List<Integer> integerList) {
    List<Integer> clonedList = new ArrayList<Integer>(integerList);
    dataLayer.add(clonedList);
    clonedList.add(100);
  }
}
Run Code Online (Sandbox Code Playgroud)

主/java/Dependency.java:

import java.util.List;

public class Dependency {
  void add(List<Integer> …
Run Code Online (Sandbox Code Playgroud)

java unit-testing reference list mockito

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

list ×1

mockito ×1

reference ×1

unit-testing ×1