Написание тестовых случаев junit с использованием сообщений журнала без использования mockito - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть приложение с загрузочной пружиной, я хочу написать тестовые случаи junit для метода void, поэтому я просто хочу проверить, содержит ли журнал определенные сообщения.Вот мой класс бизнес-логики:

public void processAdjustmentFeed(){

        ............

        if(!CollectionUtils.isEmpty(adjustmentList)){
            log.info("ADJUSTMENT FEED SIZE TO PUBLISH: {}", adjustmentList.size());
            // SOME BUSINESS LOGIC
        } else {
            log.warn("NO ADJUSTMENT FEED FOUND TO PROCESS FROM : {}", lastSuccessfulQueriedTimeStamp);
        }
    }

А в моем тестовом классе:

@RunWith(SpringRunner.class)
@SpringBootTest
public class AdjustmentSchedulerTest {
//
    @Autowired
    private AdjustmentScheduler adjustmentScheduler;

    @Autowired
    private AdjustmentRepository adjustmentRepository;

    @Autowired
    private AdjustmentService adjustmentService;



    @Test
    public void processAdjustmentFeed_ValidAdjustmentList() 
    {

        ....

        adjustmentScheduler.processAdjustmentFeed();

        //HERE I NEED TO CHECK FOR THE LOG MESSAGE
    }
}

Как я могу это сделать без использования mockito, потому что я использую базу данных H2, я хочу иметьтест с фактическим методом.Может кто-нибудь, пожалуйста, предоставьте мне несколько примеров кода, чтобы сделать это.

1 Ответ

0 голосов
/ 26 апреля 2018

Вы должны сосредоточиться на тестировании // SOME BUSINESS LOGIC вместо logger.Тестирование журналов делает ваш тест тесно связанным, и в итоге вы тестируете уже протестированный код логгера .Это не соответствует принципам модульного тестирования .

В любом случае, если вы действительно не хотите использовать mockito, вы всегда можете написать свой appender где проходят сообщения журнала.

См. это, например,

...