繁体   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