This is an ok concept to have (see above) but why not put this in a util module? The test fundamentally just needs to produce a PASS/FAIL, how it does this and what intermediate data it produces is up to it. It may be useful to keep a record of this intermediate data as auxiliary data associated with the score, and even the conversion function used to turn that data into a PASS/FAIL, but all that is OPTIONAL.