有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何单元测试私有类

我们如何对私有类进行单元测试

例如,一个私有类@autowiredwithqualifier的示例 我想验证一下好的限定符是否是call

public class MyClass {
    @Autowired
    IHelloService helloService;

    public void sayHello(List<Person> list) {
        for(Person person : list) {
            helloService.sayHello(person);
        }
    }
}

@Primary
@Component
public class SayHelloService implements ISayHello {

    @Autowired
    @Qualifier("french")
    ISayHello french;
    @Autowired
    @Qualifier("english")
    ISayHello english;

    @Override
    public void sayHello(Person person) {
        switch (person.getLanguage) {
            case "EN":
                english.sayHello(Person person);
            break;
            case "FR":
                french.sayHello(Person person);
            break;
            default:
            break;
        }
    }
}

@Qualifier("french")
Component
class SayHelloFrenchService implements ISayHello {
    public void sayHello(Person person) {
        sysout("Bonjour " + person.getName());
    }
}

@Qualifier("english")
Component
class SayHelloFrenchService implements ISayHello {
    public void sayHello(Person person) {
        sysout("Hello " + person.getName());
    }
}

编辑: 我的例子失败了:两次限定符类是私有的


共 (1) 个答案

  1. # 1 楼答案

    如果我@Mock这个接口,它就会工作

    我想我必须@Mock这个实现

    但我不能编写私有类实现的测试