#java #junit #mocking #mockito
#java #junit #издевательство #mockito
Вопрос:
У меня есть эти два метода, из-за которых у меня возникают проблемы с реализацией тестов с использованием Mock. Как я должен пройти тест?
У меня возникли проблемы с получением каталога Jboss без необходимости запускать System.getProperty («jboss.server.temp.dir»);
public ResourceRenderer getImagem(String path) throws IOException {
String resourceLocation = this.getResoureLocation(path);
InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream(caminhoImagemClasspath);
File file = new File(resourceLocation);
FileUtils.copyInputStreamToFile(resourceAsStream, file);
return ResourceRenderer.getInstance(file.getAbsolutePath(), false);
}
public String getResoureLocation(String path) {
String dirJboss= System.getProperty("jboss.server.temp.dir");
if (dirJboss != null) {
return dirJboss File.separator caminhoImagemClasspath;
}
return System.getProperty("java.io.tmpdir") File.separator path;
}
Ответ №1:
Если вы хотите использовать Mocks, вы можете извлечь вызовы системных свойств в их собственные методы и имитировать возвращаемое значение этих методов.
Вы также можете использовать System.setProperty и установить значения, которые вам нужны.
Но, если я правильно понимаю, вы пытаетесь протестировать getResourceLocation? В этом случае вам не нужно было бы проверять свойства, а скорее устанавливать для них что-то и проверять логику вашего метода, то есть 1) конкатенацию строк в последней строке и 2) поведение, если dirJboss доступен.
Комментарии:
1. Я не могу получить каталог Jboss. Тест не запускается Jboss как мне восстановить этот временный каталог Jboss?