ЕДИНИЦАJAVA

Программисты JAVA общаются здесь
Anonymous
ЕДИНИЦА

Сообщение Anonymous »

У меня есть класс, в котором я использую транзакционный шаблон, и я написал тест JUNIT для того же. Однако, когда я запускаю покрытие, у меня нет линейного покрытия на коде. Тест, хотя и зеленый. Это меня смущает. Может ли кто -нибудь быть достаточно любезным, чтобы помочь мне разрешить это. Ниже приведен мой производственный код. < /P>

Код: Выделить всё

 @Test
void test() {
Optional someParam = Optional.empty();
String TOPIC = "topic";
Token token = getToken();
Stream tokenStream = Stream.of(token);
TokenDto tokenDto = getDto();
when(specificDataMapper.fromToken(token)).thenReturn(tokenDto);
doAnswer(invocation -> {
TransactionCallbackWithoutResult callback = new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
Stream stream = tokenRepository.streamAll();
stream.forEach(t -> {
TokenDto payload = specificDataMapper.fromToken(t);
pubSubTemplate.publish(TOPIC, payload);
});
}
};
callback.doInTransaction(null);
return null;
}).when(transactionTemplate).executeWithoutResult(any());
doReturn(tokenStream).when(tokenRepository).streamAll();

publisherService.publishservice(someParam);

}
Когда я работаю в отладке, тест не вводит функцию Lamda.

Подробнее здесь: https://stackoverflow.com/questions/794 ... n-template

Вернуться в «JAVA»