thenReturn() 方法在模拟时抛出编译错误

thenReturn() method is throwing compilation error while mocking

当我尝试使用 thenReturn() 方法时出现编译错误 "The method thenReturn(Dimension) in the type OngoingStubbing is not applicable for the arguments (int)" 使用以下代码

@Test
public void LetsMockListClass() {
    List listmocked=mock(List.class);
    when(listmocked.getSize()).thenReturn(2);
    assertEquals(2, listmocked.getSize());
}

这很可能不是 Mockito 问题,而是导入语句错误的问题:

  • java.awt.List 有一个 getSize() 方法返回类型为 java.awt.Dimension 的对象。

  • java.util.List 有一个 size() 方法返回 int.

具有正确导入语句的版本可能如下所示:

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.List;
import org.junit.jupiter.api.Test;

public class ListMockTest {

    @Test
    public void letsMockListClass() {
        List<?> listMock = mock(List.class);
        when(listMock.size()).thenReturn(2);
        assertEquals(2, listMock.size());
    }
}