Hi All, I am trying to write a code that would capture the output from System.out.println and then us this output to run a junit method assertEquals. basically theres one method that needs to be tested and output of that method is in form of system.out("a") and i want to compare "a" with excpected output. Can anyone help me how shall i capture the output? thanks Venny
redirect output to a file and then use that file and a file pointer which can be used to compare or use getxxx() method where xxx means in or out to get output and store it in a string variable use it to compare....
goto to this one it might help u out... http://blogs.sun.com/nickstephen/entry/java_redirecting_system_out_and
What I did is I redirected the output to PrintStream ps and then used method Sytem.setOut(ps); and then convereted ps to String.. PrintStream ps; System.out.println("a"); System.setOut(ps); ps.toString(); but unfortuantely ps.toString() is not giving me "a" as output.. Can you explain me where did i went wrong ?
printstream is output stream object it should be directly used with println() or print() and u r trying to set a object which is a stream "System.setOut(ps);" before doing tht casting of ps object is to be done cast ps to string by using toString() and then set output....code will be same but some changes PrintStream ps; System.out.println("a"); ps.toString(); System.setOut(ps); try this....it might work but im bit unsure of use of printstream as i said its a output object and it has it's own syntax..
Thankyou for the response... but it seems the code is not working yet.. i am trying to capture output "a" to a string which i can later compare to another string and run my junit test case..