在春季使用Mockito进行单元测试



今天,当我与Mockito和spring一起工作时,我被这个场景打动了,

    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"one_answers"Class1"中使用。

我想用spring初始化"MyClass"one_answers"Class1"。

当我尝试运行这个测试时,我得到了以下异常

org.mockito.exceptions.base.MockitoException:不能模拟/间谍类$Proxy79Mockito不能mock/spy以下内容:-期末课程-匿名类-基本类型

有谁能帮我一下吗?

您正在测试Class1,它只有MyClass作为依赖项。MyService与本试验无关。您应该模拟MyClass并测试对doSomethingElse的调用。

如果你想测试MyServicedoSomething的调用,你应该写一个MyClassTest来模拟对MyService的依赖。

相关内容

  • 没有找到相关文章

最新更新