Unit Testing for JavaScript Apps

If you are familiar with unit testing, then you will already know how much the developer believes in refactoring the test code.  The best part of it? It is automatic.Unit testing, as the name suggests, is about testing for individual units of code.

 “Does the order sort the list in the correct order?”

Unit tests improve the orthogonality of code by forcing you to write a modular logic unit instead of large code chunks.Unit testing also provides you with documents that are always up-to-date and inform you about the intentions and functional behavior of the code. Even if a method has an esoteric name – which is bad, but we won’t come here – you’ll know immediately what it does by reading your test.

Recently I was involved in writing a lot of unit tests for our AngularJS app, which is partially in ES2015.

There were just a few hours in the process, we realized that ignoring unit tests for so long was a big mistake. The code base was growing, and as it usually does, was getting more complex with every new feature or modification. In addition, we had another task to clean up parts of our code and transfer them to ES2015 and make them testable.

Opposition:

Required library and test double utilities required
Explicit Library: Tea, Tea-as-promised
Test Doubles: Sinon
This means that we have to take care of the additional configurations for the additional libraries needed to make Mocha useful. This would also mean additional maintenance of the unit testing framework.

Mocha discourages passing arrow acts.

Their literal bonding of this value makes them unable to access the Mocha context, and such statements. 1000 (1000); Arrow will not work inside the function.Too many plugins for every little utility. You may have chai, but it is not enough. Then you have to make Chi-e-Futures to claim the promises. Even this may not be enough and will involve you doing karma-chyar-as-vada (these last two are not compatible with PhantTJS)

The conclusion

It happens that we get into analysis paralysis when trying to figure out which unit testing framework to use, and ultimately skip writing unit tests altogether. If you have not yet started with unit testing, I recommend you to go on the Jasmine + Karma path because you need everything built into the framework. And, if you are willing to raise the appropriate resources for specific needs, Mocha + Chi + Karma is a good way to go.

I have found that Mocha and Jasmine are almost identical. If you are a courageous deva, then you should try AVA, as I am also doing. However, in my experience, it doesn’t really matter if you’re using Jasmine or Mocha. The most important thing is writing hundreds and hundreds of good unit tests.

Every company on this planet is trying to woo its customers in one way or the other.

This article is the first in a series of patterns that emphasize the importance of customer experience in how a best practice proves to be unfit and makes us rethink how to improve the overall process of customer interactions. Let’s start with an example:

My car needed a minor repair. I went to my dealer and got it done. By this point everything seemed fine;

The staff were good and very cooperative, they did everything possible to ensure that I had a very good customer experience and of course I was happy with the overall experience. Now comes the next stage. As usual, I was busy with my regular work in the office; I get a call from the local landline number. I usually avoid taking calls during office hours and contact the callers when there is free time. As it was a landline call, I thought about choosing it and I came to know that the call was from the car dealer for my response.

As I was pleased with the overall service,

I provided them with positive feedback and ended the call. After 2-3 days, I received another call from their head office for feedback (which may not really be needed as I had already provided my feedback). Although I reported that feedback was provided, the operator persisted with the response request. After a lot of kajoling, I gave in and told that I would be able to save only 5-10 minutes. The operator was happy and started the conversation and every little information it collected

Leave a Comment