簡體   English   中英

我的 mockito 間諜方法不起作用。 類型不匹配錯誤

[英]My mockito spy method is not working. Type mismatch Error

第一次使用mockito並且 spy 似乎沒有工作,當我嘗試使用它時會出錯。

我正在使用mockito-core version 2.7.22 ,但我也嘗試過version 3.3.0並且問題仍然存在。

這是一些偽代碼示例。 我在 ClassA 中測試一個方法:

public class ClassATest{

    private ClassA classAMock;

    private ClassB classBMock;

    private ClassC classCMock;


    @Before
    public void setUp() {
        ClassBMock = Mockito.mock(ClassB.class);
        ClassCMock = Mockito.mock(ClassC.class);

        ClassAMock = Mockito.spy(ClassA.class);

    }


.spy 行給出了一個錯誤,上面寫着:

類型不匹配。 無法從 Class >ClassA< 轉換為 ClassA。

.mock工作正常。

推薦 1 個修復:將演員表添加到“ClassA”。

這發生在我試圖監視的所有類中,而不僅僅是ClassA

我也知道,如果我改用@Spy Annotation ,我不會收到任何錯誤,但是 mocking 完全無法模擬,就像我的“何時”方法運行真實方法而不是模擬方法一樣。

我的 mockito 進口是:

import org.mockito.Mockito;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;

編輯:添加 class 層次結構......

public class ClassA{}
public class ClassB{}
public class ClassC{}

如果有人可以幫助我,將不勝感激!

謝謝。

這個例子對我有用:

public class ClassATest {

    private ClassA classAMock;
    private ClassB classBMock;
    private ClassC classCMock;

    @Before
    public void setUp() {
        classAMock = Mockito.spy(ClassA.class);
        classBMock = Mockito.mock(ClassB.class);
        classCMock = Mockito.mock(ClassC.class);
    }

    @Test
    public void test() {
        System.out.println(classAMock.getClass());
    }

    public static class ClassA {}
    public static class ClassB {}
    public static class ClassC {}
}

如果它也在你身邊,也許你有一個起點,你可以推進它直到問題發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM