java - 如何使用 JMockit 模拟 Spring 注入(inject)类

标签 java spring junit mocking jmockit

我的代码:

class A extends X {
    @Autowired
    B b;

    @Override
    method() {
        //do something
        b.callMethodInB;
        //do something
    }

}

class B extends X {
    @Autowired
    C c;

    @Override
    method() {
        //do something
        c.callMethodInC;
       //do something
    }

}

我需要在 A 中测试 method()。那么如何模拟B。我正在使用 Junit4 和 Jmockit。

最佳答案

尝试这样的事情:

import org.junit.*;
import mockit.*;

public class ATest
{
    @Tested A a;
    @Injectable B b;

    @Test
    public void testMethod()
    {
        a.method();

        new Verifications() {{ b.callMethodInB(); }};
    }
}

JMockit 使用注入(inject)的 B 实例(来自模拟字段 b)自动实例化 A,将其设置为 a 测试类中的字段。这与使用的 DI 框架 (Spring) 无关。

关于java - 如何使用 JMockit 模拟 Spring 注入(inject)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242923/

相关文章:

java - Spring项目中如何避免映射的重复代码?

java - Lombok :构造函数未定义

java - Mockito & Junit 空指针异常 : name must not be null

java - JUnit 测试——分析预期的异常

java - 如何在 ArrayAdapter 中为 ListView 使用多个 TextView ?

需要 JavaFX 位置,找不到文件

java - 带有 spring boot 的 tiles url 映射

grails - groovy.lang.MissingPropertyException:否这样的属性:为类创建:

spring - @SQL 每堂课一次

java - Angular JS $http.post 方法导致 JSON 数组格式错误