это не строго связано с вопросом пользователя, но я вполне уверен, что кто-то, кто туда доберется, может найти это полезным.
Я использую следующий подход: выставить пакетный локальный конструктор, который будет использоваться из тестов.
, например
SRC / главная / Java / ApplicationService.java
public class ApplicationService {
private final Integer someInternalObject;
public ApplicationService(String somePublicArgument) throws NumberFormatException {
someInternalObject = Integer.valueOf(somePublicArgument, 16);
}
ApplicationService(Integer someInternalObject) {
this.someInternalObject = someInternalObject;
}
}
SRC / тест / ApplicationServiceTest.Java
public class ApplicationServiceTest {
@Test
public void testSomething() throws Exception {
ApplicationService applicationService = new ApplicationService(0);
}
}
выставить его на все тесты
не выпускные классы
Расширьте его в тестах и предоставьте открытый конструктор для локального или защищенного пакета.
выпускные занятия
Создайте открытый Factory Method в том же пакете (в тестах), который создаст его с помощью конструктора package-local.