建立由 Mockito 模擬的物件

建立由 Mockito 模擬的物件有兩種方法:

  • 通過註釋
  • 通過模擬功能

通過註釋:

使用 JUnit 測試執行器:

@RunWith(MockitoJUnitRunner.class)
public class FooTest {
    @Mock
    private Bar barMock;

    // ...
}

你也可以使用 Mockito 的 JUnit @Rule,它提供與 MockitoJUnitRunner 相同的功能,但不需要 @RunWith 測試執行器:

public class FooTest {
    @Rule
    public MockitoRule mockito = MockitoJUnit.rule();        

    @Mock
    private Bar barMock;

    // ...
}

如果你不能使用 @RunWith@Rule 註釋,你也可以按手初始化:

public class FooTest {
    @Mock
    private Bar barMock;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
    }

    // ...
}

通過模擬功能:

public class FooTest {
    private Bar barMock = Mockito.mock(Bar.class);

    // ...
}

由於型別擦除,你不能像上面那樣模擬泛型類。你必須模擬基類並顯式轉換為正確的泛型型別:

public class FooTest {
    private Bar<String> genericBarMock = (Bar<String>) Mockito.mock(Bar.class);

    // ...
}