groovy.test

## Class GroovyAssert

- java.lang.Object
- - org.junit.Assert
  - - groovy.test.GroovyAssert

    public class GroovyAssert
    extends org.junit.Assert

`GroovyAssert` contains a set of static assertion and test helper methods and is supposed to be a Groovy extension of JUnit 4's `Assert` class. In case JUnit 3 is the choice, the `GroovyTestCase` is meant to be used for writing tests based on `TestCase`.

`GroovyAssert` methods can either be used by fully qualifying the static method like

         groovy.test.GroovyAssert.shouldFail { ... }

or by importing the static methods with one ore more static imports

         import static groovy.test.GroovyAssert.shouldFail
         import static groovy.test.GroovyAssert.assertNotNull

Since:
  2.3
Author:
  Paul King, Andre Steingress
See Also:
  `GroovyTestCase`

### Field Summary

Fields
`static java.lang.String` `TEST_SCRIPT_NAME_PREFIX`

### Constructor Summary

Constructors
Constructor and Description
`GroovyAssert()`

### Method Summary

All Methods Static Methods Concrete Methods
`static void` `assertScript(java.lang.String script)` Asserts that the script runs without any exceptions
`protected static java.lang.String` `genericScriptName()`
`static boolean` `notYetImplemented(java.lang.Object 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.
`static java.lang.Throwable` `shouldFail(java.lang.Class clazz, Closure code)` Asserts that the given code closure fails when it is evaluated and that a particular type of exception is thrown.
`static java.lang.Throwable` `shouldFail(java.lang.Class clazz, java.lang.String script)` Asserts that the given script fails when it is evaluated and that a particular type of exception is thrown.
`static java.lang.Throwable` `shouldFail(Closure code)` Asserts that the given code closure fails when it is evaluated
`static java.lang.Throwable` `shouldFail(java.lang.String script)` Asserts that the given script fails when it is evaluated
`static java.lang.Throwable` `shouldFailWithCause(java.lang.Class expectedCause, 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.

### Methods inherited from class org.junit.Assert

`assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertThrows, assertThrows, assertTrue, assertTrue, fail, fail`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### TEST_SCRIPT_NAME_PREFIX

    public static final java.lang.String TEST_SCRIPT_NAME_PREFIX

See Also:
  Constant Field Values

### Constructor Detail

#### GroovyAssert

    public GroovyAssert()

### Method Detail

#### genericScriptName

    protected static java.lang.String genericScriptName()

Returns:
  a generic script name to be used by `GroovyShell#evaluate` calls.

#### assertScript

    public static void assertScript(java.lang.String script)
                             throws java.lang.Exception

Asserts that the script runs without any exceptions

Parameters:
  `script` - the script that should pass without any exception thrown
Throws:
  `java.lang.Exception`

#### shouldFail

    public static java.lang.Throwable shouldFail(Closure code)

Asserts that the given code closure fails when it is evaluated

Parameters:
  `code` - the code expected to fail
Returns:
  the caught exception

#### shouldFail

    public static java.lang.Throwable shouldFail(java.lang.Class clazz,
                                                 Closure code)

Asserts that the given code closure fails when it is evaluated and that a particular type of exception is thrown.

Parameters:
  `clazz` - the class of the expected exception
  `code` - the closure that should fail
Returns:
  the caught exception

#### shouldFailWithCause

    public static java.lang.Throwable shouldFailWithCause(java.lang.Class expectedCause,
                                                          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 matching exception is returned otherwise the method will fail.

Parameters:
  `expectedCause` - the class of the expected exception
  `code` - the closure that should fail
Returns:
  the cause

#### shouldFail

    public static java.lang.Throwable shouldFail(java.lang.Class clazz,
                                                 java.lang.String script)

Asserts that the given script fails when it is evaluated and that a particular type of exception is thrown.

Parameters:
  `clazz` - the class of the expected exception
  `script` - the script that should fail
Returns:
  the caught exception

#### shouldFail

    public static java.lang.Throwable shouldFail(java.lang.String script)

Asserts that the given script fails when it is evaluated

Parameters:
  `script` - the script expected to fail
Returns:
  the caught exception

#### notYetImplemented

    public static boolean notYetImplemented(java.lang.Object 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 for JUnit 3 is:

     public void testXXX() {
       if (GroovyAssert.notYetImplemented(this)) return;
       ... the real (now failing) unit test
     }

or for JUnit 4

     @Test
     public void XXX() {
       if (GroovyAssert.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 distribution.

Returns:
  `false` when not itself already in the call stack