public class ScriptedAction extends java.lang.Object implements Action
An Action that executes a BeanShell script.
This makes it easy to implement custom actions, especially those that call back to objects
passed to the mocked method as parameters.
To use a scripted action in an expectation, statically import the perform
method and call it within the will(...) clause of the expectation.
The script can refer to the parameters of the mocked method by the names $0 (the first parameter), $1, $2, etc,
and to the mock object that has been invoked by the name $this.
You can define other script variables by calling the action's where method.
For example:
allowing (sheep).accept(with(a(Visitor.class)));
will(perform("$0.visitSheep($this)");
is equivalent to:
allowing (sheep).accept(with(a(Visitor.class)));
will(perform("$0.visitSheep(s)").where("s", sheep);
| Constructor and Description |
|---|
ScriptedAction(java.lang.String expression) |
| Modifier and Type | Method and Description |
|---|---|
void |
describeTo(org.hamcrest.Description description) |
java.lang.Object |
invoke(Invocation invocation)
Performs an action in response to an invocation.
|
static ScriptedAction |
perform(java.lang.String script)
Creates an action that performs the given script.
|
ScriptedAction |
where(java.lang.String name,
java.lang.Object value)
Defines a variable that can be referred to by the script.
|
public java.lang.Object invoke(Invocation invocation) throws java.lang.Throwable
Invokableinvoke in interface Invokableinvocation - The invocation to perform.null if the invoked method has a void return type.java.lang.Throwable - An exception to be thrown to the caller, if not returning a value. Any checked exception
thrown must be in the throws list of the invoked method.public void describeTo(org.hamcrest.Description description)
describeTo in interface org.hamcrest.SelfDescribingpublic static ScriptedAction perform(java.lang.String script)
script - a BeanShell script.public ScriptedAction where(java.lang.String name, java.lang.Object value)
name - the name of the variablevalue - the value of the variable