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

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -