Skip to content

Instantly share code, notes, and snippets.

@masak
Created October 2, 2011 10:44
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save masak/1257334 to your computer and use it in GitHub Desktop.
Prototype of a visual DSL for intentional testing

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 and then
  • 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 and then 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment