This course is 3 years old now so some of the details have since changed, but all of the basic concepts described in this course remain just the same.
Joe explains that QUnit writes TDD style tests that look a lot like unit tests in NUnit and similar server side frameworks.
It supports asynchronous tests, and integrates with Continuous Integration.
Jasmine uses BDD style tests. Joe explains Jasmine custom matchers.
Jasmine also supports asynchronous tests, and Joe covers the jasmine.async library which makes this easier.
Jasmine has a good introductory guide at jasmine.github.io
Mocha is highly versatile. It supports both TDD and BDD styles tests and you can configure it however you want.
Mocha requires you to find your own preferred assertion library to work with it. The most popular one is Chai JS.
This module looks at the reasons for using Mocks, which include Isolation, easy flow control, and testing interactions.
Joe explains the difference between a dummy, a fake, a stub, a spy and a mock
Joe also explains using custom matchers for making assertions about spies
This is the longest module in the course, and is over an hour long.
Sinon is a sophisticated mocking library allowing you to use spies, stubs and mocking.
Joe explains the matchers and mock timers, and then Sinon’s mock XHR functionality: both useFakeXMLHttpRequest for high control and fakeServer – a higher level interface for defining canned responses.
Joe wraps up with Sandboxing, which restores any global objects modified by tests back to their original state.
For build tools, there are a number of alternatives options available today. Grunt is still a good tool and worth considering, however so is Gulp, Browserify and Webpack.
For a more in depth look at Grunt, watch Introduction to Grunt by Derik Whittaker.
Finally, if you WebPack is what you want to learn, see Webpack Fundamentals by Joe Eames
If you don’t know which build tool you should learn, you can find more information from Cory House: Browserify vs Webpack
I hope all of this helps. Please add a comment below to let me know if this was helpful, or to ask any questions.