簡體   English   中英

使用Mockito在春季進行單元測試

[英]Unit test in spring using Mockito

今天和Mockito一起工作時,春天,我對這種情況感到震驚,

    public class MyClass {

    private MyService myService;

    int doSomethingElse(String str) {
        .....
        myService.doSomething(str);
        ...
    }
}

public interface MyService {
    String doSomething(String str);
}


public class Class1 {
    private MyClass myClass;

    public Stirng methodToBeTested() {
        myClass.doSomethingElse("..");
    }
}

public class class1Test {

    @Mock
    MyService myService;

    @Resource
    @Spy
    @InjectMocks
    MyClass myClass;

    @Resource
    @InjectMocks
    Class1 class1;

    public void setUPTest() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void methodToBeTestedTest() {
        this.setUPTest();
            ...
            class1.methodToBeTested();
    }

}

在這里,我要模擬“ MyService”。 但是MyService在“ MyClass”中使用,而在“ Class1”中使用。

我想使用spring初始化“ MyClass”和“ Class1”。

當我嘗試運行此測試時,出現以下異常

org.mockito.exceptions.base.MockitoException:無法模擬/間諜類$ Proxy79 Mockito無法模擬/間諜以下:-最終類-匿名類-基本類型

誰能幫我這個?

您正在測試Class1 ,它僅將MyClass作為依賴項。 MyService與該測試無關。 您應該模擬MyClass並測試對doSomethingElse的調用。

如果您希望測試對MyService doSomething的調用,則應編寫一個MyClassTestMyService的依賴關系。

暫無
暫無

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

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