As we have seen, there are a lot of toolsets and frameworks for testing JavaScript projects:
For the assertion framework, we will go with Jasmine as Angular itself uses Jasmine as assertions; but in some cases, mostly for Node.js projects, Mocha is fun as well
As long as we focus on the automated test suite, the test runner is of most importance to us, and nothing can be compared to Karma when it's about an Angular project
For end-to-end testing, Protractor is the best framework, and we will use that in this chapter.
As long as it's end-to-end testing, it must be automated, and Selenium is here to automate the browser for us.
It's important to run tests as cross-browser support, and PhantomJS is here for us to serve as a headless browser.