【问题标题】:when testing a class, check the work inside the method using a Junit and a Mockito测试类时,使用 Junit 和 Mockito 检查方法内部的工作
【发布时间】:2022-01-13 17:08:08
【问题描述】:

我有一个包含测试的类,我遇到了困难,我如何检查方法 addBeginList() 中的操作“list.add (int)”是否发生在特定列表上。使用 Moсkito 库,检查是否在类中的列表上调用了特定方法?

public class ClassA implements IClassA {

private List<Integer> list;

public ClassA (List<Integer> list) {
    this.list = list;
}

@Override
public int addBeginList() {

    long t1 = System.currentTimeMillis();
    list.add(5);
    long t2 = System.currentTimeMillis();

    return (int) t2 - (int) t1;
}

测试类

@RunWith(MockitoJUnitRunner.class)
public class ClassATest{

private ClassA mockClassA;
private static final int EXPECTED = 0;
private static final int DELTA = 1000;
private static final int SIZE = 7000;


@Before
public void setUp() throws Exception {
    mockClassA = Mockito.mock(ClassA.class);
    mockClassA.initialize(SIZE);
    mockClassA.addBeginList();
}

@Test
public void initialize() {
   
}

@Test
public void addBeginList() {
    assertEquals(EXPECTED, mockClassA.addBeginList(), DELTA);
}

【问题讨论】:

    标签: java android unit-testing mockito junit4


    【解决方案1】:

    第一步是确保测试 ClassA 的真实实例,而不是模拟。

    接下来,您可以提供一个真实列表并检查它是否包含某个元素,或者您提供一个模拟列表并使用 Mockito 检查调用了特定方法:

    verify(mockedList).add(5)
    

    【讨论】:

      【解决方案2】:

      我找到了解决问题的方法:

      public class ClassA extends AbstractList<Integer> implements IClassA {///}
      

      在测试类中:

      private List<Integer> mockedList;
      private ClassA classA;
      
      @Before
      public void setUp() throws Exception {
          mockedList = Mockito.mock(ClassA.class);
          classA = new ClassA(mockedList);
      }
      
      @Test
      public void addBeginList() {
          assertEquals(EXPECTED, classA.addBeginList(), DELTA);
          verify(mockedList).add(5);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-27
        • 1970-01-01
        • 2023-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-20
        • 1970-01-01
        相关资源
        最近更新 更多