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 楼答案
如果我@Mock这个接口,它就会工作
我想我必须@Mock这个实现
但我不能编写私有类实现的测试