Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between mocha and Selenium?

I started using Node.js and was looking for a testing framework.

I found :

  • Mocha
  • Selenium

I understand that with Mocha one could to write tests in JS while with Selenium, one has to write tests with lower level languages like C#.

Apart from that is there something Selenium can do that Mocha can't?

What use does Mocha have by itself?

like image 207
batman Avatar asked Apr 06 '14 12:04

batman


People also ask

Is Mocha based on Selenium?

We will now be able to run the commands in our command line using the mocha keyword. Java – SDK: Since Mocha is a Selenium test framework and Selenium is built upon Java , we would also be installing the Java Development Kit ( preferably JDK 7.0 or above ) on the system and configure the JAVA environment.

Is Mocha a BDD tool?

Mocha is a testing library for Node. js, created to be a simple, extensible, and fast. It's used for unit and integration testing, and it's a great candidate for BDD (Behavior Driven Development).

What does Mocha mean?

describe() is simply a way to group our tests in Mocha. We can nest our tests in groups as deep as we deem necessary. describe() takes two arguments, the first is the name of the test group, and the second is a callback function.

Is Mocha and jest same?

Jest is an open-source unit testing framework developed by Facebook. Mocha is a JavaScript testing framework that also supports Node. js. In addition, it provides developers with a base test framework with options such as assertion, mocking, and spy libraries.


1 Answers

Mocha and Selenium both deal with testing software but they solve different problems.

Mocha is test running framework. You tell Mocha what tests you have and what tests you want to run and mocha will run your tests and report those that passed and those that failed. Mocha by itself provides a test running framework. You'll typically want to use an assertion library with it, like Chai. I have test suites where the only libraries providing testing support are Mocha together with Chai. This is a perfectly viable use-case.

Selenium is a library for controlling browsers. A major part of its scope is testing browser-based software. However, it can also be used for scraping web sites. This is something that Selenium can do that Mocha cannot do, by itself. Conversely Selenium is not a test running framework. Selenium has no facilities dedicated to delimiting tests and running only specific tests. You have to rely on a test running framework like Mocha to delimit one test from another.

If you want to write a test suite that tests a browser-based application you could use Mocha together with Selenium. Or Jasmine (another test running framework) with Selenium. Or you could use Behave (a Python based test runner) together with Selenium. Or you could use Mocha together with some other library that controls browsers.

This specific question needs special treatment:

I understand that with Mocha one could to write tests in JS while with Selenium, one has to write tests with lower level languages like C#.

I would not call C# a lower-level language. At any rate, using Mocha you'd have to use JavaScript. (There's a testing library for Ruby also named "Mocha" but which is not a Ruby version of the JavaScript one. I'm assuming you are talking about the JavaScript one, which makes my response a tautological but here we are.) You can use Selenium with JavaScript, Python, C#, Java and a bunch of other languages.

like image 78
Louis Avatar answered Sep 28 '22 00:09

Louis