Capture output in System.out

Venny's Avatar, Join Date: Jan 2011
Go4Expert Member
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
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Moved to C# forum
Venny's Avatar, Join Date: Jan 2011
Go4Expert Member
its a java question.. so shud be moved to Java forums
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Quote:
Originally Posted by Venny View Post
its a java question.. so shud be moved to Java forums
Moved. I only saw System.out and moved to C#. Thanks for pointing that out.
Venny's Avatar, Join Date: Jan 2011
Go4Expert Member
Do you know the answer btw ?
alpha34's Avatar, Join Date: Dec 2009
Go4Expert Member
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....
alpha34's Avatar, Join Date: Dec 2009
Go4Expert Member
goto to this one it might help u out...
http://blogs.sun.com/nickstephen/ent...system_out_and
Venny's Avatar, Join Date: Jan 2011
Go4Expert Member
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 ?
alpha34's Avatar, Join Date: Dec 2009
Go4Expert Member
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..
Venny's Avatar, Join Date: Jan 2011
Go4Expert Member
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..