1 2 package junit.tests.runner; 3 4 import java.io.ByteArrayOutputStream ; 5 import java.io.OutputStream ; 6 import java.io.PrintStream ; 7 8 import junit.framework.AssertionFailedError; 9 import junit.framework.TestCase; 10 import junit.framework.TestResult; 11 import junit.framework.TestSuite; 12 import junit.textui.ResultPrinter; 13 import junit.textui.TestRunner; 14 15 public class TextFeedbackTest extends TestCase { 16 OutputStream output; 17 TestRunner runner; 18 19 class TestResultPrinter extends ResultPrinter { 20 TestResultPrinter(PrintStream writer) { 21 super(writer); 22 } 23 24 26 protected String elapsedTimeAsString(long runTime) { 27 return "0"; 28 } 29 } 30 31 public static void main(String [] args) { 32 TestRunner.run(TextFeedbackTest.class); 33 } 34 35 public void setUp() { 36 output= new ByteArrayOutputStream (); 37 runner= new TestRunner(new TestResultPrinter(new PrintStream (output))); 38 } 39 40 public void testEmptySuite() { 41 String expected= expected(new String []{"", "Time: 0", "", "OK (0 tests)", ""}); 42 runner.doRun(new TestSuite()); 43 assertEquals(expected.toString(), output.toString()); 44 } 45 46 47 public void testOneTest() { 48 String expected= expected(new String []{".", "Time: 0", "", "OK (1 test)", ""}); 49 TestSuite suite = new TestSuite(); 50 suite.addTest(new TestCase() { public void runTest() {}}); 51 runner.doRun(suite); 52 assertEquals(expected.toString(), output.toString()); 53 } 54 55 public void testTwoTests() { 56 String expected= expected(new String []{"..", "Time: 0", "", "OK (2 tests)", ""}); 57 TestSuite suite = new TestSuite(); 58 suite.addTest(new TestCase() { public void runTest() {}}); 59 suite.addTest(new TestCase() { public void runTest() {}}); 60 runner.doRun(suite); 61 assertEquals(expected.toString(), output.toString()); 62 } 63 64 public void testFailure() { 65 String expected= expected(new String []{".F", "Time: 0", "Failures here", "", "FAILURES!!!", "Tests run: 1, Failures: 1, Errors: 0", ""}); 66 ResultPrinter printer= new TestResultPrinter(new PrintStream (output)) { 67 public void printFailures(TestResult result) { 68 getWriter().println("Failures here"); 69 } 70 }; 71 runner.setPrinter(printer); 72 TestSuite suite = new TestSuite(); 73 suite.addTest(new TestCase() { public void runTest() {throw new AssertionFailedError();}}); 74 runner.doRun(suite); 75 assertEquals(expected.toString(), output.toString()); 76 } 77 78 public void testError() { 79 String expected= expected(new String []{".E", "Time: 0", "Errors here", "", "FAILURES!!!", "Tests run: 1, Failures: 0, Errors: 1", ""}); 80 ResultPrinter printer= new TestResultPrinter(new PrintStream (output)) { 81 public void printErrors(TestResult result) { 82 getWriter().println("Errors here"); 83 } 84 }; 85 runner.setPrinter(printer); 86 TestSuite suite = new TestSuite(); 87 suite.addTest(new TestCase() { public void runTest() throws Exception {throw new Exception ();}}); 88 runner.doRun(suite); 89 assertEquals(expected.toString(), output.toString()); 90 } 91 92 private String expected(String [] lines) { 93 OutputStream expected= new ByteArrayOutputStream (); 94 PrintStream expectedWriter= new PrintStream (expected); 95 for (int i= 0; i < lines.length; i++) 96 expectedWriter.println(lines[i]); 97 return expected.toString(); 98 } 99 100 } 101 | Popular Tags |