Mocha Classes
A simple proof of concept to explore using ES2015 Classes and ES2016 Decorators to help write more declarative unit tests with Mocha. Loosely insprired by the NUnit syntax.
Warning: Decorators are currently broken (as of 10/29/15) in Babel 6. Until that's addressed, you'll need to use Babel 5 if you plan to use decorators in your project.
Install
npm install --save-dev mocha-classes
Features
- Write tests using ES2015 Classes
- Supports inherited life-cycle hooks (
before
,beforeEach
, etc) from subclasses
Example Test
Note: A more thorough example can be seen in test/decorators-example.spec.js
;; @bdd @bdd { tobetrue; } ;
Is this really a good idea?
Honestly, that's a great question. As of this time, I haven't identified much value that this decorator/class based test syntax provides. Only time will tell...
Possible Benefits
- Less nesting, due to description of test not being a param to
describe
. - Encourages more descriptive function names for life-cycle hooks like
before
andafter
(real world Mocha tests frequently use anon functions to avoid line length limits in projects), which leads to more descriptive stack traces.
Possible Future Enhancements
- Make argument to
describe
andit
decorators optional, and infer test name from fn name when not provided (similar to NUnit)