I am new to the Javascript world, being majorly into OOP. I have tried to look up online for a clear cut distinction between Karma and Mocha but in vain. I know Karma is a Test Runner and Mocha is a unit testing Framework, but Mocha also has its own driver and can be used for running tests in the browser. That said, I don't understand what Karma brings to the plate, and why are people using these in conjunction.
Imagine the following scenario:
Write your own test suites with Mocha
Use Karma
to run programmatically your Mocha
tests cross-browser and
cross-devices
More, integrate Karma
with your Jasmine existing environment
Even more, integrate Karma
in your Continuous Integration cycle
Use a million Karma
plugin to check coverage, complexity, framework
stuff, etc...
The power of Karma
is that it can spawn real browsers - such Chrome or Firefox - to effectively test your code with them.
With Mocha
you can run it in a NodeJS
environment or in a webpage.