groovy.util
Class GroovyTestCase

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by groovy.util.GroovyTestCase
All Implemented Interfaces:
Test

public class GroovyTestCase
extends TestCase

A default JUnit TestCase in Groovy. This provides a number of helper methods plus avoids the JUnit restriction of requiring all test* methods to be void return type.

Version:
$Revision: 14149 $
Author:
bob mcwhirter, James Strachan, Dierk Koenig (the notYetImplemented feature, changes to shouldFail)

Field Summary
protected static Logger log
           
static String TEST_SCRIPT_NAME_PREFIX
           
 
Constructor Summary
GroovyTestCase()
           
 
Method Summary
protected  void assertArrayEquals(Object[] expected, Object[] value)
          Asserts that the arrays are equivalent and contain the same values
protected  void assertContains(char expected, char[] array)
          Asserts that the array of characters contains a given char
protected  void assertContains(int expected, int[] array)
          Asserts that the array of ints contains a given int
static void assertEquals(Object expected, Object actual)
           
static void assertEquals(String message, Object expected, Object actual)
           
static void assertEquals(String expected, String actual)
           
protected  void assertInspect(Object value, String expected)
          Asserts that the value of inspect() on the given object matches the given text string
protected  void assertLength(int length, char[] array)
          Asserts that the array of characters has a given length
protected  void assertLength(int length, int[] array)
          Asserts that the array of ints has a given length
protected  void assertLength(int length, Object[] array)
          Asserts that the array of objects has a given length
protected  void assertScript(String script)
          Asserts that the script runs without any exceptions
protected  void assertToString(Object value, String expected)
          Asserts that the value of toString() on the given object matches the given text string
protected  String fixEOLs(String value)
          Returns a copy of a string in which all EOLs are \n.
 String getMethodName()
           
 String getName()
          Overload the getName() method to make the test cases look more like AgileDox (thanks to Joe Walnes for this tip!)
protected  String getTestClassName()
           
 boolean notYetImplemented()
          Convenience method for subclasses of GroovyTestCase, identical to GroovyTestCase.notYetImplemented(this); .
static boolean notYetImplemented(TestCase caller)
          Runs the calling JUnit test again and fails only if it unexpectedly runs.
protected  String shouldFail(Class clazz, Closure code)
          Asserts that the given code closure fails when it is evaluated and that a particular exception is thrown.
protected  String shouldFail(Closure code)
          Asserts that the given code closure fails when it is evaluated
protected  String shouldFailWithCause(Class clazz, Closure code)
           
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, run, run, runBare, runTest, setName, setUp, tearDown, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

protected static Logger log

TEST_SCRIPT_NAME_PREFIX

public static final String TEST_SCRIPT_NAME_PREFIX
See Also:
Constant Field Values
Constructor Detail

GroovyTestCase

public GroovyTestCase()
Method Detail

getName

public String getName()
Overload the getName() method to make the test cases look more like AgileDox (thanks to Joe Walnes for this tip!)

Overrides:
getName in class TestCase

getMethodName

public String getMethodName()

assertArrayEquals

protected void assertArrayEquals(Object[] expected,
                                 Object[] value)
Asserts that the arrays are equivalent and contain the same values

Parameters:
expected -
value -

assertLength

protected void assertLength(int length,
                            char[] array)
Asserts that the array of characters has a given length

Parameters:
length - expected length
array - the array

assertLength

protected void assertLength(int length,
                            int[] array)
Asserts that the array of ints has a given length

Parameters:
length - expected length
array - the array

assertLength

protected void assertLength(int length,
                            Object[] array)
Asserts that the array of objects has a given length

Parameters:
length - expected length
array - the array

assertContains

protected void assertContains(char expected,
                              char[] array)
Asserts that the array of characters contains a given char

Parameters:
expected - expected character to be found
array - the array

assertContains

protected void assertContains(int expected,
                              int[] array)
Asserts that the array of ints contains a given int

Parameters:
expected - expected int
array - the array

assertToString

protected void assertToString(Object value,
                              String expected)
Asserts that the value of toString() on the given object matches the given text string

Parameters:
value - the object to be output to the console
expected - the expected String representation

assertInspect

protected void assertInspect(Object value,
                             String expected)
Asserts that the value of inspect() on the given object matches the given text string

Parameters:
value - the object to be output to the console
expected - the expected String representation

assertScript

protected void assertScript(String script)
                     throws Exception
Asserts that the script runs without any exceptions

Parameters:
script - the script that should pass without any exception thrown
Throws:
Exception

getTestClassName

protected String getTestClassName()

shouldFail

protected String shouldFail(Closure code)
Asserts that the given code closure fails when it is evaluated

Parameters:
code -
Returns:
the message of the thrown Throwable

shouldFail

protected String shouldFail(Class clazz,
                            Closure code)
Asserts that the given code closure fails when it is evaluated and that a particular exception is thrown.

Parameters:
clazz - the class of the expected exception
code - the closure that should fail
Returns:
the message of the expected Throwable

shouldFailWithCause

protected String shouldFailWithCause(Class clazz,
                                     Closure code)

fixEOLs

protected String fixEOLs(String value)
Returns a copy of a string in which all EOLs are \n.


notYetImplemented

public static boolean notYetImplemented(TestCase caller)
Runs the calling JUnit test again and fails only if it unexpectedly runs.
This is helpful for tests that don't currently work but should work one day, when the tested functionality has been implemented.
The right way to use it is:
 public void testXXX() {
   if (GroovyTestCase.notYetImplemented(this)) return;
   ... the real (now failing) unit test
 }
 
Idea copied from HtmlUnit (many thanks to Marc Guillemot). Future versions maybe available in the JUnit distro. The purpose of providing a 'static' version is such that you can use the feature even if not subclassing GroovyTestCase.

Returns:
when not itself already in the call stack

notYetImplemented

public boolean notYetImplemented()
Convenience method for subclasses of GroovyTestCase, identical to
 GroovyTestCase.notYetImplemented(this); 
.

Returns:
when not itself already in the call stack
See Also:
notYetImplemented(junit.framework.TestCase)

assertEquals

public static void assertEquals(String message,
                                Object expected,
                                Object actual)

assertEquals

public static void assertEquals(Object expected,
                                Object actual)

assertEquals

public static void assertEquals(String expected,
                                String actual)

Copyright © 2003-2010 The Codehaus. All rights reserved.