Size: a a a

2020 July 07

ИВ

Илья Высоцкий... in learn.java
подскажите пожалуйста как протестировать такой класс? Примерно как такое делается, в двух словах, куда копать хоть
источник

OP

Oleg Pavl in learn.java
Rinchin G
Понял, нужно воспользоваться DatasourceInitializer и ему передать популятор
Я хз это у тебя кастомные классы или ты в спринге чёт переопределяешь, но метод помеченный этой аннотацией отработает отработает после формирования готового контекста когда все бины настроены, но перед работой самого приложения. Если тебя это устраивает, то это то что тебе нужно.
источник

OP

Oleg Pavl in learn.java
Илья Высоцкий
подскажите пожалуйста как протестировать такой класс? Примерно как такое делается, в двух словах, куда копать хоть
Если будешь делать юнит тест, тебе нужен мокито чтобы с имитировать студентДао. А как ввод в консоль сделать в тесте с тестовыми данными хз. Погугли.
источник

ИВ

Илья Высоцкий... in learn.java
Oleg Pavl
Я хз это у тебя кастомные классы или ты в спринге чёт переопределяешь, но метод помеченный этой аннотацией отработает отработает после формирования готового контекста когда все бины настроены, но перед работой самого приложения. Если тебя это устраивает, то это то что тебе нужно.
тут странности какие-то творятся, я хочу протестить хоть что вводится, и может проверить потом вывод в консоль как-то, а оно висит мертво пару минут, вот внизу крутятся и все загрузки. В чем может быть беда не подскажете?
источник

ch

central hardware in learn.java
Oleg Pavl
Если будешь делать юнит тест, тебе нужен мокито чтобы с имитировать студентДао. А как ввод в консоль сделать в тесте с тестовыми данными хз. Погугли.
Выкинуть IO из метода и не надо будет извращаться эмалирование консоли
источник

ИВ

Илья Высоцкий... in learn.java
central hardware
Выкинуть IO из метода и не надо будет извращаться эмалирование консоли
вынести ввод в другой класс с паблик методом мб попробовать?
источник

ch

central hardware in learn.java
Илья Высоцкий
вынести ввод в другой класс с паблик методом мб попробовать?
Что вы в тот методе тестировать хотите? Конструктор?
источник

OP

Oleg Pavl in learn.java
Илья Высоцкий
тут странности какие-то творятся, я хочу протестить хоть что вводится, и может проверить потом вывод в консоль как-то, а оно висит мертво пару минут, вот внизу крутятся и все загрузки. В чем может быть беда не подскажете?
Оно не висит, а ждёт ввода в консоль.
источник

P

Pan Kotek in learn.java
Илья Высоцкий
тут странности какие-то творятся, я хочу протестить хоть что вводится, и может проверить потом вывод в консоль как-то, а оно висит мертво пару минут, вот внизу крутятся и все загрузки. В чем может быть беда не подскажете?
Если используешь MockitoExtension, то не надо инициализировать моки через initMocks
источник

OP

Oleg Pavl in learn.java
central hardware
Выкинуть IO из метода и не надо будет извращаться эмалирование консоли
Согласен. Нет кода, нет проблем)
источник

ИВ

Илья Высоцкий... in learn.java
Oleg Pavl
Оно не висит, а ждёт ввода в консоль.
ничего не вводится, консоль не реагирует
источник

ИВ

Илья Высоцкий... in learn.java
Pan Kotek
Если используешь MockitoExtension, то не надо инициализировать моки через initMocks
а как?
источник

ch

central hardware in learn.java
central hardware
Что вы в тот методе тестировать хотите? Конструктор?
А так да io явно там лишний, а если завтра захотите gui, что будете делать?
источник

NG

Nikita Gryzlov in learn.java
сделайте свой сапплаер интерфейсом, дефолтную реализацию - классом, в тесте - мок на интерфейс. сапплаер прокиньте в команду как зависимость либо в конструктор, либо в execute
источник

P

Pan Kotek in learn.java
Илья Высоцкий
а как?
Можно просто повесить на зависимости класса @Mock, а на тестируемый объект @InjectMocks
источник

V

Vit in learn.java
Nazarii 🌌
Anton @DemetrAfinskiy
Спасибо, что за битовые операции разъяснили. Сижу уже какой час, играюсь.
Странно, что нигде особо, кого не читал, об этом не рассказывали :)
Какие преимущества даёт умение битовых операций?
источник

N🌌

Nazarii 🌌 in learn.java
Vit
Какие преимущества даёт умение битовых операций?
В java может и особо не нужно, но они очень дешёвые
источник

D

Dima in learn.java
Илья Высоцкий
тут странности какие-то творятся, я хочу протестить хоть что вводится, и может проверить потом вывод в консоль как-то, а оно висит мертво пару минут, вот внизу крутятся и все загрузки. В чем может быть беда не подскажете?
у тебя не должно быть ввода в консоль в тестах
источник

D

Dima in learn.java
по крайней мере в юнит
источник

RG

Rinchin G in learn.java
Люди подскажите? Пытаюсь разобраться с spring cache

@Cacheable("tokens")
public String getToken(Log log){
 logger.info("get token from log");
 String token = log.getToken();
 tokenInfoProvider.validateSessionCookie(token);
 return token;
}


Для него написал тест

@Test
void getToken() {

 logService.getToken(log);
 logService.getToken(log);
 logService.getToken(log);

}


Насколько я понимаю кэширование, это что он после первого раза больше не полезет в getToken, а должен сразу отдать Token

но почему то
при выполнении теста
все три раза logger выводит

get token from log
get token from log
get token from log


Подскажите куда копать?
источник