Unit Testing of AngularJs code using Jasmine

Posted By : Harsh Soni | 31-Dec-2018
Unit Testing your AngularJs code using Jasmine


As a developer, I can say that we all have seen that "Small changes to our code fixes one thing and breaks something else", because this is almost inevitable when you have a larger amount of code.


But what if we have a way of knowing when something breaks as a result of some changes? You can modify your code without any fear or worry about breaking anything. 


Unit Testing


Unit testing automatically detects any problems in the code and you can save your time and efforts of debugging easily. Testing your codebase is easy as you take a piece of code-- a function-- and verify it against specific situations. Unit testing is a structured and automated way of testing your code base. Angular Js has its own testing framework called "Karma". It is a command line tool which loads your application's source code and executes your tests on any web browser.


For here testing our angular code we are using Jasmine framework


Jasmine is the most popular behavior-driven development framework and it is most common amongst the developer for testing AngularJs applications. You can keep your test code well structured and documented for all time use.


In Jasmine we use the describe inbuild function to group our tests together:


describe("Sort the list of users", function() {
  // individual tests go here


After that, each individual test can be called using it inbuilt function.


 describe('sorting the list of users', function() {
  it('Sort the list of users', function() {
    // your test assertion goes here


Jasmine also provides matchers which let you make assertions:


describe('sorting the list of users', function() {
  it('Sort the list of users', function() {
    var users = ['jack', 'igor', 'jeff'];
    var sorted = sortUsers(users);
    expect(sorted).toEqual(['jeff', 'jack', 'igor']);


Jasmine comes with lots of matchers you can read the full documentation here. We can also user karma and jasmine together using the karma-jasmine library.


It also has sample codes to test filter, controllers modules and directives. You can learn more about then from here.



Related Tags

About Author

Author Image
Harsh Soni

Harsh is an experienced software developer with a specialization in the MEAN stack. He is skilled in a wide range of web technologies, including Angular, Node.js, PHP, AWS, and Docker.Throughout his career, Harsh has demonstrated a strong commitment to delivering high-quality software solutions that meet the unique needs of his clients and organizations. His proficiency in Angular and Node.js has allowed him to build dynamic and interactive user interfaces, leveraging the power of modern front-end frameworks. Harsh's expertise also extends to cloud computing and infrastructure management using AWS, enabling him to design and deploy scalable applications with ease. Additionally, his knowledge of Docker has enabled him to streamline the development and deployment process, enhancing efficiency and reducing time-to-market. He excels at analyzing complex technical challenges and devising efficient strategies to overcome them, ensuring the successful completion of projects within deadlines.

Request for Proposal

Name is required

Comment is required

Sending message..