Submitted by Leena S N (@leenasn) on Tuesday, 5 August 2014
- Introduction to Jasmine
- Use Karma for running Tests
- Stubbing and Mocking using libraries such as Sinon.JS
- Tools such as Grunt and Bower for packaging and building
- Integration with Continuous Integration servers such as Jenkins, Travis CI etc.
If time permits we will also cover:
- Using Jasmine and Karma test driving applications which uses frameworks such as AngularJS, Backbone etc.
Writing tests has definite benefits especially in long term. But if we don’t have the right environment and tool set, it can be less fun and frustrating too. In this workshop we will be focusing on setting up the right environment with the right tools which makes test driven development enjoyable and sustainable.
We will be using Jasmine as the testing framework and Karma as the test runner. Jasmine is one of the most popular unit testing framework for writing behavioural tests. It resembles RSpec, the popular testing framework in the Ruby world. It comes up with set of helper methods which wraps out all the mundane things, especially the test setup, and helps us focus on testing. Also, it has a pretty clean syntax which helps in faster learning.
Karma is a test runner which basically facilitates running tests in our preferred environment, a real browser or a headless browser like PhantomJS. The best part is that it will blend well with most of the major Continuous Integration servers such as Jenkins, Travis etc..
We will also cover tools such as Bower, Grunt, which helps us to run the tests frequently to give us quick and frequent feedback, which is mandatory for unit testing.
- Laptop with your preferred IDE. We will be using Sublime/Atom.
- Familiarity with Git
We will setup a git repo with all the required dependencies that people can clone and use during the workshop.
Hiemanshu is a Software Architect @ Multunus. At Multunus, we’ve been working on a lot of interesting projects, and doing Continuous Delivery[CD] across a lot of platforms. We have also been working on a platform for faster UX feedback, SeaWeed. I love contributing to Open Source projects and have contributed to projects like CyanogenMod, Fedora, KDE, Qt. I have conducted workshops and given talks about contributing to CyangenMod and Fedora. I am also an avid gamer and love playing all kinds of games.