Package groovy.util

Class GroovyTestCase

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

public class GroovyTestCase extends junit.framework.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$
Author:
bob mcwhirter, James Strachan, Dierk Koenig (the notYetImplemented feature, changes to shouldFail)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static Logger
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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
    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.
     
    Overload the getName() method to make the test cases look more like AgileDox (thanks to Joe Walnes for this tip!)
    protected String
     
    boolean
    Convenience method for subclasses of GroovyTestCase, identical to
    static boolean
    notYetImplemented(junit.framework.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:
    protected String
    Asserts that the given code closure fails when it is evaluated.
    protected String
    shouldFail(Class clazz, Closure code)
    Asserts that the given code closure fails when it is evaluated and that a particular exception type is thrown.
    protected String
    Asserts that the given code closure fails when it is evaluated and that a particular exception type can be attributed to the cause.

    Methods inherited from class junit.framework.TestCase

    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, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, run, run, runBare, runTest, setName, setUp, tearDown, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • GroovyTestCase

      public GroovyTestCase()
  • Method Details

    • 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 junit.framework.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 - the closure that should fail
      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 type 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)
      Asserts that the given code closure fails when it is evaluated and that a particular exception type can be attributed to the cause. The expected exception class is compared recursively with any nested exceptions using getCause() until either a match is found or no more nested exceptions exist.

      If a match is found the error message associated with the matching exception is returned. If no match was found the method will fail.

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

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

      public static boolean notYetImplemented(junit.framework.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:
    • 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)