Automated Scenario Testing
Cody generates fully working applications, but what about testing?
It would be nice to combine Example Mapping with Event Storming on prooph board and let Cody translate the sketched scenarios into automated integration tests.
Event Modeling also covers the topic and gives some ideas how to structure scenarios in a Given-When-Then format for example using…
Cody generates fully working applications, but what about testing?
It would be nice to combine Example Mapping with Event Storming on prooph board and let Cody translate the sketched scenarios into automated integration tests.
Event Modeling also covers the topic and gives some ideas how to structure scenarios in a Given-When-Then format for example using events (Given), commands (When) and read models and/or new events (Then).
See the image here: https://eventmodeling.org/posts/what-is-event-modeling/blueprint_large.jpg
prooph board and Cody offer different ways how to structure such functionality. The goal of this milestone is to figure out what would be the easiest to use.
Scenarios should be created and designed in collaboration sessions. The format should be easy to remember, yet powerful enough to cover different scenario types.
Here are some ideas to consider:
1.) Scenario Design can be integrated in the new Cody Wizard, so it might make sense to start with structured metadata that is easy to translate into source code by Cody.
2.) A more collaborative way would be to use the Name-Description functionality of prooph board cards:
Cody receives name (everything above first hr) and description (everything below first hr) as separate information. This would make it possible to tell Cody which events,commands, read models are involved in a scenario (by matching the name of the card) and which data is associated with each card (listed as prop: value information in the description part of a card).
This idea is sketched here on the board: https://app.prooph-board.com/inspectio/board/ba59fb19-4d03-46fe-82a2-2725d61481ae?cells=giZjX43B6qtFkVzKijvLWN&clicks=1
1.) is easier for Cody to process, because metadata can force a specific structure while 2.) is easier to use in collaboration sessions.