Я два дня искал ответ. Я пробовал @Mock, @InjectMock и @Spy с разными дополнительными функциями, но ничего не получалось, как это было описано в руководствах. Многие вопросы, которые я нашел, касались проблемы в Angular, это мой первый проект с использованием Spring-Boot / Maven и никогда не работал с Angular.
У меня есть служба Basi c для некоторых значений. хотите иметь возможность меняться только там, но нуждаетесь в них в нескольких других сервисах. Я написал сокращенный пример базовой структуры, которую хочу протестировать, и включил обходной путь, который нашел на данный момент, но хотел бы знать, как опытные программисты go об этом.
У меня есть моя служба конфигурации:
@Service
public class ConfigService {
private final int initialLength = 4;
public int getInitialLength() {
return initialLength;
}
public double getInitialSquared() {
return Math.pow(4,2);
}
}
И еще одна служба, использующая ее:
@Service
public class OtherService {
@Autowired
ConfigService configService;
// How I surpassed it for now is overloading and only testing the second function
String printLine() {
return printLine(configService.getInitialLength());
}
String printLine(int length) {
StringBuilder output = new StringBuilder();
for (int i = 0; i < configService.getInitialLength(); i++) {
output.append("-");
}
return output.toString();
}
}
И мой тест на данный момент:
class OtherServiceTest {
@InjectMocks
OtherService otherService = new OtherService();
@Test
void printLine() {
AssertEquals("----", OtherService.printLine(4));
}
}