Few words about JavaScript Testing Frameworks and which situations more suitable for using each.
Behaviour-Driven Development framework
open source
works independently of any other JavaScript framework
does not require any Document Object Model (DOM)
runs on Node.js
is used for testing (mostly) web applications with asynchrony code
is compatible with most frameworks or libraries
good for large projects that require integrating it with external libraries
has good support (tutorials, articles, blog posts etc)
used to test JavaScript codes, especially applications developed using React JS
has the entire toolkit in one place. Well documented, well maintained.
the test cases are written using the behavior-driven development approach
performs visual regression tests by capturing screenshots. For an application that is developed using React JS, this feature comes quite handy for preventing UI bugs caused accidentally. The screenshots can be updated easily if any new feature is added.
open source
it's a Test Runner
developed to bring a productive testing environment to developers
it's a place where developers can just write the code and get instant feedback from their tests
helps you to perform automation testing on real devices and browsers easily
easy debugging directly from your IDE via WebStorm or Google Chrome.
control the entire workflow directly from your IDE or CMD
is a feature-rich JavaScript test framework running on Node.js and in the browser
open source and allows flexibility
good for asynchronous testing
lots of tutorial and documents are available online
is used for testing web applications especially apps which are developed using Node.js
uses Selenium WebDriver API and allows the user to perform end to end testing
the language is very simple, needs a basic knowledge of object-oriented programming
the community is quite large and there are a lot of resources available to help
is an end-to-end test framework for Angular and AngularJS applications
dedicated for testing angular application in a real browser
automated interaction simulate real user actions
runs over Selenium WebDriver, all the basic functionalities of WebDriver is supported by Protractor. Additionally: locators like repeater, model, binding and many more and there is a default waits functionality, the purpose of which is to wait for angular
open source
is a programming interface to create and execute test cases by using Elements/Objects locators/Web Driver methods
is supported on different browsers by own driver on which the application runs
has a client library for browsers driver not only on JavaScript, but also for other programming languages: Java, .Net (C#), Python, Ruby
it fits perfectly into almost any stack for performing automatic testing. As an example, the stack for Java technology could be Jenkins + Maven + Thucydices + JUnit + WebDriver.
as a product with a long history, it has huge community to help and resolve problems