我们如何单元测试私人类?
例如,带有private class @autowired的示例我想验证是否呼叫良好的预选赛
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());
}
}
编辑:我未能让我的例子:两次预选赛类是私人
如果我@mock界面,则可以工作。
我以为我必须@mock实施...
,但我无法编写实施私人类的测试。