For a recent project, I was trying to force myself to create unit and integration testing as part of the scaffolding. I had gotten to the point where my basic tests were moving along well and I was moving up the diagram from unit tests to integration tests. The basic project makeup is here: In working on the second tier cfcs (the image renderer, document render and the mesage renderer) I found myself starting to repeat some of the same tests again and again. The reason for this was pretty straightforward. All three of the renderers needed to return a struct with the same keys to the Decision Maker* so all three had a set of the same tests applied to them. This got tedious both to type out and the maintain as the needs of the structures morphed over time. Basically, the output from those and other other renderers that we'd develop in the future, needed to comply to an interface. All of them needed to have the same keys in the struct but the values would change based on the typ...