I want to build a spike solution that does this:
- Present a form UI to the user
- Each button or form group fires an event, a command, or an exception
- Three modes in sequence:
given
/when
/then
- Events may be fired only in the modes
given
andthen
- Commands may be fired only in the
when
mode - In the
then
mode, either a exception or a chain of events may be issued but not both - Either or both
given
andthen
may be empty sequences of events - The user proceeds through the given/when/then in order, advancing manually through the UI
- It's possible to commit the test case in the end, or wipe and start over a test case at any time
- Final product is an XML or JSON structure with the committed test cases
Each such UI is of course very tailored to the commands/events/exceptions in the model, so these must've been designed already. But the point is that it should be dead easy to put together a UI from them — maybe even automatically mapped from an .xsd
file (but manually improvable).
The framework for recording tests in this way can then be re-used between projects. Since the output is in a neutral data format, it can be used in any setting with any language.