Registry for unique and re-usable specificationsλ︎
So far we have just use predicate functions directly in the code examples.
Using a registry, specs can be uniquely defined across the whole project. Defining a spec gives that spec a name that has a fully qualified namespace
Use the spec specific
def function to bind a new spec name and fully qualified namespace and place it in the registry
Removing specs from the registryλ︎
Named specifications can be removed from the registry by binding the name to
If specification names are to be refactored, then the original name should be set to
nil and evaluated, before changing the name. This will ensure stale specifications are not residing in the REPL.
Here is a named specification as an example
The specification is evaluated in the REPL (above) and currently works.
Remove this specification from the registry by binding it to nil
Now the specification is unavailable
Registry not persistent
Restarting the REPL will loose all specification names in the registry as it is not persistent across REPL sessions.