And TestNG's innovation was to use annotations?
Not just that. In a nutshell:
- Groups (very important to define sets of test methods that cannot be adequately grouped by classes or packages, such as "long tests").
- Dependent methods
- Flexible runtime model (no need to recompile anything to invoke a different set of tests)
- Enable all kinds of testings, not just "unit"
- More granular configuration methods (before/after methods, classes, tests, entire suites)
- Parameters for test methods
- ... and much more
Please take a look at the documentation for more details: http://testng.org
Now, if they had included some fancy type of automock which could instrument classes using cglib or something... but I'm sure someone else is doing something like that in another project that I'll read about in this space in the next few months.
It's an interesting feature but probably as a plug-in, not in the core distribution.
Anyway, I'd be interested to discuss your ideas further if you'd like to expand on them and send me an email: we're always interested in expanding the scope of TestNG to whatever users need for their testing needs.