"the problem is that the test framework is too complicated, nested with too many levels of helpers and helper-helpers, no consistent pattern and difficult-to-understand code"
Somay - take note of this.
1) Where possible avoid complexity
2) You need to put some more effort into the overall design (I was expecting this by the end of yesterday). If you start with a good design you end up with consistent patterns which are easy to follow. If not you end up with a bits and pieces stuck together which are hard for others to follow.