> For the complete documentation index, see [llms.txt](https://auto-grade.joemazzone.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://auto-grade.joemazzone.net/java/output-tests.md).

# Output Tests

This is an example of how you can test the output stream of student code.&#x20;

This test makes sure the student's code prints `"Hello World"`.  It assumes the student's file name is `Example.java`.  Replace the `Example.main(null)` call with whatever you student's file name is.&#x20;

*Note:  This code converts the output to all lowercase and removes spaces to compare against the correct value.*

#### **Grading Tests:**

```java
import org.junit.Before;
import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.*;
import java.io.*;


public class CodingRoomsUnitTests {
    
    private final PrintStream standardOut = System.out;
    private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream();

    @Before
    public void setUp() {
        System.setOut(new PrintStream(outputStreamCaptor));
    }

    @After
    public void tearDown() {
        System.setOut(standardOut);
    }

    @Test
    public void testDefaultCase() {
        Example.main(null);
        assertEquals("Hello World".toLowerCase().trim().replace(" ", ""), outputStreamCaptor.toString().toLowerCase().trim().replace(" ", ""));
    }    
}
```

#### Sample Solution:

{% code title="Example.java" %}

```java
public class Example
{
    public static void main(String[] args)
    {
        System.out.println("Hello World");
    }
}
```

{% endcode %}
