Web Services 

with Mocha



  • There is a lot that happens in the Back-end 
    • Store
      •  Do some action over HTTP -> Serialize
      • Goes to an event store -> queue
      • Handle an Event 
    • Read
      • Query over HTTP 
      • Read the data
      • Serialize it back -> Send to client

Consumption is all JavaSCript

We test client side code that uses the backend

  • Single test to rule them all 

  • Verifies the back-end is fit for purpose

  • True E2E for the backend

Why not Angular midway testing

Been there done that. 

 Didn't like: 

  • Speed (karma is slower then raw Node.js)
  • Difficult to write tests 
    • Why care about angular.module (codegen!)
    • scope.apply!

We love our Codegen

  • Modular services
    • Approvals
    • Assets
    • Catalogues
    • Photography
    • ....

  • All of these are Angular Services

Simplifying Codegen 

Abstract away $http 

  • Have a JavaScript (TypeScript) class that has 
"get, post, delete, put"

  • Gives us an opportunity to handle global errors
(404, 500)

  • Simplify client side URL generation

A better Get Action

Sample Generated Service

A service that depends on BaseHttpService

Abstract for Node.js 

Our front-end code remains unchanged. 

We just instrument it for Node.js 

Sample front end code: 





The reward

The reward

Better debugging


See whats going on


  • Mocha is fast, simple and you have all the power of Node.js

  • Frontend :
     Abstract away $http 

  • Mocha:
      Write your $http, $injector. Bring in cool stuff like $q 

  • Advantages: 
    • Run Speed
    • Developer happiness



Testing Web Services 

By basarat

Testing Web Services 

  • 998
Loading comments...

More from basarat