Wolfram Language Paclet Repository
Community-contributed installable additions to the Wolfram Language
Utilities for locally overriding function behavior, useful in software testing and much more
Contributed by: Jesse Friedman
To install this paclet in your Wolfram Language environment,
evaluate this code:
PacletInstall["Wolfram/Mockingbird"]
To load the code after installation, evaluate this code:
Needs["Wolfram`Mockingbird`"]
Evaluate an expression using a mocked version of the function f:
In[1]:= | ![]() |
Out[1]= | ![]() |
Use MockDefinitionGroup to specify multiple, potentially interconnected definitions:
In[2]:= | ![]() |
Out[3]= | ![]() |
By default, MockDefinition shields against recursive invocation, so a mock definition for a function can call the same function's original definition without danger of infinite recursion:
In[4]:= | ![]() |
Out[5]= | ![]() |
In[6]:= | ![]() |
Out[6]= | ![]() |
Create a mocked version of URLExecute for testing the UKPostcodeLookup resource function. The mock definition validates the URL in an HTTP request and returns a canned response without actually making the request:
In[7]:= | ![]() |
This mocked version can be used to validate the request-construction and response-parsing logic in the function under test without the expense of making live HTTP requests:
In[8]:= | ![]() |
Out[9]= | ![]() |
In[10]:= | ![]() |
Out[10]= | ![]() |
The use of ConfirmBy in the mock definition causes the evaluation to exit early and return a Failure object if the requested URL is incorrect:
In[11]:= | ![]() |
Out[11]= | ![]() |
In[12]:= | ![]() |
Out[12]= | ![]() |