A test-driven approach to assessing JS skills
To use the tests, you will need to install Node. Note that on Windows, there are some reports that you will need to restart after installing Node - see #12.
You can clone or download this repo. Once you have done so, from the root directory of the repo, run:
npm install npm start
You can then view the tests in your browser at http://localhost:4444.
When you visit that page, all of the tests should be failing; your job is to get the tests to pass. To do this, you'll need to refer to the tests in the files in the
tests/appdirectory, and edit the files in the
app/directory. Once you update a test, you can reload the test page in the browser to see whether it worked.
You can also run (most of) the tests on the command line:
The command line runner is a work in progress; contributions welcome :)
The repo includes jQuery, Backbone, and Underscore. You can use these libraries when writing your solutions!
Submit a pull request! The tests are currently loosely organized by topic, so you should do your best to add tests to the appropriate file in
tests/app, or create a new file there if you don't see an appropriate one. If you do create a new file, make sure to add it to
tests/runner.js, and to add a stub for the solution to the corresponding file in
app/. Finally, it would be great if you could update the answers as well.
If you're not sure how or where to add a test, please open an issue.
If your tests need data that can be fetched via XHR, stick a
.jsonfile in the
datadirectory; you can access it at
First, bear in mind that looking up the answers is going to teach you a whole lot less than you'll learn by working on the tests, even if you occasionally get stuck. I'd recommend only looking at the answers once you have the tests passing, to see if there's another way you could have approached the problem. When you're ready to look at the answers, you can find them here; I'll do my best to keep them up to date.
This repo uses Mocha and Chai for the tests themselves. It uses the BDD style for authoring tests. If this doesn't suit you, please fork away, or, better, submit a pull request that lets this be more flexible than it currently is.
There are a number of things that would make this project better; check out the issues for details, pull requests welcome!
Copyright © 2012-2016 Rebecca Murphey with many thanks to several contributors.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.