我有一个spring boot应用程序,我想为void方法编写一个junit测试用例,所以我只想测试日志是否包含特定的消息。 以下是我的业务逻辑类:
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数据库,我想用实际方法进行测试。任何人都可以请我提供一些代码示例。
答案 0 :(得分:0)
您应该专注于测试// SOME BUSINESS LOGIC
而不是logger
。测试日志使您的测试紧密耦合,您最终测试已测试的记录器代码。这不符合 unit testing principles 。
无论如何,如果您真的不想使用mockito
,您可以随时编写自己的appender
日志消息。