在 JUnit 5 中测试公共方法时如何模拟私有方法。
class School{
@Autowired
private SchoolRepo schoolRepo;
private String getSchoolName(String name){
return "New Name :"+schoolRepo.findByName(name);
}
public String getFullNameWithSchool(){
String schoolName = getSchoolName("HMS");
String fullName = "SK "+schoolName;
return fullName;
}
}
我想测试(使用 JUnit5)
getFullNameWithSchool
方法并模拟私有方法 getSchoolName
方法。
前言:
您无法使用 JUnit 模拟私有方法。
您可以使用 PowerMock 来模拟它们。
解决方法是使用反射,但不建议这样做。
解决方案:
私有方法应该在公共方法中调用。然后你就可以测试公共方法,包括私有方法。
给出的示例:如果您有一个服务,请测试其公共方法。如果它的公共方法调用私有方法,它们也会自动测试。