Yeoman is an open source client-side development stack, consisting of tools and frameworks intended to help developers quickly build high quality web applications. Yeoman runs as a command-line interface written in Node.js which combines several functions into one place, such as generating a starter template, managing dependencies, running unit tests, providing a local development server, and optimizing production code for deployment.
After installing Yeoman, you'll use generators to scaffold out specific types of applications. A generator is basically a plugin that can be run with the
yo command to scaffold complete projects or useful parts. Examining the architechtures that popular (well-built) generators produce is a fantastic way to learn how well-established software engineers think about structuring their applications. There are generators that help you scaffold out applications built in Angular, Backbone, as Chrome Extentions, and pretty much anything else you can imagine.
Install Yeoman with,
$ npm install -g yo
Then install generator-test from npm:
$ npm install -g generator-test
cd to (or create) your project directory, then initiate the generator:
$ yo test
When invoked, this generator gives the option of creating a testing scaffold designed to be run in the browser, or one designed to be run with Node.
If you select 'browser' when prompted, A simple mocha/chai TDD scaffold for your algorithm solution with the following folder structure will be created:
solution ├── bower.json ├── bower_components │ ├── chai │ └── mocha ├── index.html ├── spec │ └── algorithm.js └── algorithm.js
After runnning the generator in browser mode, run the tests by opening
If you select 'Node' when prompted, A simple mocha/chai TDD scaffold for your algorithm solution with the following folder structure will be created:
solution ├── node_modules │ └── chai ├── package.json ├── spec │ └── algorithm.js └── algorithm.js
After runnning the generator in Node mode, run the tests via
Write additional tests in the file created in the
/spec dir, and your algorithm in the file in the current dir.