Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #25276

Re: Reading from stdout

From Daniel Pitts <newsgroup.nospam@virtualinfinity.net>
Newsgroups comp.lang.java.programmer
Subject Re: Reading from stdout
References <l0sruc$clf$1@dont-email.me>
Message-ID <DfnYt.29309$cs5.9201@fx09.iad> (permalink)
Date 2013-09-12 10:56 -0700

Show all headers | View raw


On 9/12/13 9:59 AM, White Spirit wrote:
> I'm writing a unit test for a logger class that writes to stdout.  The
> logger class uses an OutputStreamWriter to wrap FileDescriptor.out:
>
>    mOut = new OutputStreamWriter(new
> FileOutputStream(FileDescriptor.out), "UTF-8");
>
> My unit test instantiates the logger class as a local object.  When I
> try to read from FileDescriptor.out in my unit test class, however,
> nothing is received:
>
>   BufferedReader reader = new BufferedReader( new InputStreamReader( new
> FileInputStream( FileDescriptor.out ) ) );
>   // do some logging
>   // ...
>   String n = reader.readLine();
>
> Is there any way of reading what the logger is outputting?

If you allow the Logger to accept an OutputStream, then you can pass in 
a new ByteArrayOutputStream().

  final ByteArrayOutputStream baos = new ByteArrayOutputStream();
  final Logger logger = new Logger(baos);
  doSomeLogging(logger);
  String result = baos.toString(); // uses default encoding.
  assertEqual(expectedResult, result);


Back to comp.lang.java.programmer | Previous | Next | Find similar | Unroll thread


Thread

Re: Reading from stdout Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-09-12 10:56 -0700

csiph-web