Package org.jmock.lib.script
Class ScriptedAction
- java.lang.Object
-
- org.jmock.lib.script.ScriptedAction
-
public class ScriptedAction extends Object implements Action
An
Actionthat 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
performmethod and call it within thewill(...)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
wheremethod.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);- Author:
- nat
-
-
Constructor Summary
Constructors Constructor Description ScriptedAction(String expression)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddescribeTo(org.hamcrest.Description description)Objectinvoke(Invocation invocation)Performs an action in response to an invocation.static ScriptedActionperform(String script)Creates an action that performs the given script.ScriptedActionwhere(String name, Object value)Defines a variable that can be referred to by the script.
-
-
-
Constructor Detail
-
ScriptedAction
public ScriptedAction(String expression)
-
-
Method Detail
-
invoke
public Object invoke(Invocation invocation) throws Throwable
Description copied from interface:InvokablePerforms an action in response to an invocation.- Specified by:
invokein interfaceInvokable- Parameters:
invocation- The invocation to perform.- Returns:
- The result of the invocation, if not throwing an exception.
Must return
nullif the invoked method has a void return type. - Throws:
Throwable- An exception to be thrown to the caller, if not returning a value. Any checked exception thrown must be in thethrowslist of the invoked method.
-
describeTo
public void describeTo(org.hamcrest.Description description)
- Specified by:
describeToin interfaceorg.hamcrest.SelfDescribing
-
perform
public static ScriptedAction perform(String script)
Creates an action that performs the given script.- Parameters:
script- a BeanShell script.- Returns:
- the new action.
-
where
public ScriptedAction where(String name, Object value)
Defines a variable that can be referred to by the script.- Parameters:
name- the name of the variablevalue- the value of the variable- Returns:
- the action, so that more variables can be defined if needed
-
-