Capture output in System.out

Go4Expert Member
27Jan2011,11:34   #1
Venny's Avatar
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
Go4Expert Founder
27Jan2011,12:16   #2
shabbir's Avatar
Moved to C# forum
Go4Expert Member
27Jan2011,13:12   #3
Venny's Avatar
its a java question.. so shud be moved to Java forums
Go4Expert Founder
27Jan2011,13:25   #4
shabbir's Avatar
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.
Go4Expert Member
27Jan2011,13:27   #5
Venny's Avatar
Do you know the answer btw ?
Go4Expert Member
27Jan2011,14:19   #6
alpha34's Avatar
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....
Go4Expert Member
27Jan2011,14:23   #7
alpha34's Avatar
goto to this one it might help u out...
http://blogs.sun.com/nickstephen/ent...system_out_and
Go4Expert Member
27Jan2011,15:42   #8
Venny's Avatar
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 ?
Go4Expert Member
27Jan2011,17:03   #9
alpha34's Avatar
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..
Go4Expert Member
28Jan2011,03:04   #10
Venny's Avatar
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..