java - How to unit test an Spring @Bean CommandLineRunner? -
java - How to unit test an Spring @Bean CommandLineRunner? -
i'm using spring boot in little poc, , i'm trying test @bean implementation. have code:
@springbootapplication public class application { public static void main(string[] args) { springapplication.run(application.class, args); } @bean commandlinerunner init(@value("${db.resetandloadonstartup:true}") boolean resetandloadonstartup, sequenceidrepository sequencerepository, useraccountrepository useraccountrepository, bookrepository bookrepository) { homecoming args -> { log.info("init application..."); if (resetandloadonstartup) { filldbdata(sequencerepository, useraccountrepository, bookrepository); } log.info("aplication initiated!"); }; } private void filldbdata(sequenceidrepository sequencerepository, useraccountrepository useraccountrepository, bookrepository bookrepository) { // code... } ... } how can unit test @bean commandlinerunner? yeah, maybe unit test 'filldbdata' method (putting protected or powermock), larn if there's way test spring @bean "completely".
you can utilize outputcapture see print in console
@rule public outputcapture outputcapture = new outputcapture(); in test method:
string output = this.outputcapture.tostring(); asserttrue(output, output.contains("aplication initiated!")); java spring unit-testing spring-boot spring-test
Comments
Post a Comment