Class NamedScriptWithResult<T1, T2, TResult>
- Namespace
- CSF.Screenplay.Selenium
- Assembly
- CSF.Screenplay.Selenium.dll
A model representing a pre-written piece of executable JavaScript, which accepts 2 parameters, but which is expected to return a result.
public class NamedScriptWithResult<T1, T2, TResult> : NamedScriptBasis, IHasName
Type Parameters
T1The type of the first parameter
T2The type of the second parameter
TResultThe expected result/return type from the script
- Inheritance
-
NamedScriptWithResult<T1, T2, TResult>
- Implements
- Inherited Members
Remarks
Whilst the generic type parameters of this type have no direct bearing upon its members (such as properties), they are very useful when
combined with the many overloads of the builder method ExecuteAScript in the PerformableBuilder class.
Developers are encouraged to store JavaScripts in their apps/tests as instances of this type and other related types (see the "See Also" section). This improves the reusability of the script, improves its presence in Screenplay reports and provides type safety. For more information, see the named scripts article.
For scripts which are created in this manner, getting an IPerformable or IPerformableWithResult<TResult> for those
scripts is very easy and type safe. Use the ExecuteAScript method from the PerformableBuilder and
the compiler will use generic type inference to select an appropriate overload.
The parameters and return type will then be type-safe and of the appropriate number.
Another benefit is that scripts defined and stored in instances of this type are reusable and easily catalogued. See the Scripts helper class for an example of a catalogue of script objects which may be executed. Once again, developers are encouraged to follow this pattern in their own applications/tests which use Screenplay & Selenium.
Constructors
NamedScriptWithResult(string, string)
Initialises a new instance of NamedScriptWithResult<TResult>.
public NamedScriptWithResult(string scriptBody, string name)
Parameters
Exceptions
- ArgumentException
If either parameter is null or whitespace-only.