[Js hcm] Java script- Testing the awesome

100 %
0 %
Information about [Js hcm] Java script- Testing the awesome

Published on March 5, 2014

Author: JavascriptMeetup



Author: Nicolas Embleton @:

You can follow Nicolas at:

And the Javascript Ho Chi Minh City Meetup:
Our group is looking for Projects to mentor. If you have a project you want support for, plz contact us

Javascript: Testing the awesome with Mocha and Jasmine

Speakers ● Nicolas ● Tung

Agenda ● ● ● ● ● Introduction Basics (Mocha and Jasmine) Operators and asserts Listeners, spies More advanced examples

Introduction and basics ● Goal 1 ○ Make your code solid and future-proof ● Goal 2 ○ Have a systematic way to "catch" regression problems ● Goal 3 ○ Maintain a code stability throughout the codebase increase

Introduction and basics Mocha: ● fun ● simple ● flexible ● built for JavaScript (and CoffeeScript)

Introduction and basics ● ○ Built and supported by Pivotal Labs ● Latest Version: 2.0 ● Runs ○ In the browser natively ○ With Node.js through a runner (Karma, Protractor, …) ● Simple, elegant, descriptive, full-featured

Basics, Mocha ● solve the async problems ● work with every assertion library ○ that throw exceptions ● extensible reporters ○ nyan cat included

Basics, Jasmine ● Describe your suites with "Describe" to make your code clean and reports readable ○ You can even NEST them describe("mocking ajax", function() { ● Describe each test with "it" and a descriptive comment to explain what the test is doing it("specifies response when you need it", function() {

Basics, Jasmine ● Setup a test suite ("describe") beforeEach(function() { ● Teardown a test suite ("describe") afterEach(function() { ● "Expect" things to be (or not) as they should (or not) expect(doneFn).not.toHaveBeenCalled();

Basics, Mocha ● ● ● ● support lcov (lib coverage) support only, skip, --grep highlight slow test, custom timeouts [BDD | TDD | QUnit | exports] interface

Basics, Jasmine ● ● ● ● Code Coverage through Karma (node.js) Gem for testing in Rails Plays well with CoffeeScript Plays well with MVC Framework (AngularJS for example)

Basic operators, Mocha Mocha + Chai + CoffeeScript = Awesomeness ● NO bra-ces ● NO repeating keywords ● NO “deep” pains ● Focus only on the test

Basic operators, Jasmine Within tests you use "Matchers" expect(true).toBe(true); expect(false).not.toBe(true); expect(a).toBe(b); expect(a).not.toBe(null); expect(message).toMatch(/bar/); expect(message).toMatch("bar"); expect(message).not.toMatch(/quux/);

Basic operators, Mocha back to the demo

Basic operators, Jasmine ● It can be complex scenarios and matchers, any kind of dynamic code built with JavaScript.

Listeners, Spies: Mocha No need for spies and listeners Just use callback

Listeners, Spies: Jasmine ● You can use Spies to check function calls spyOn(foo, 'setBar'); foo.setBar(123); expect(foo.setBar).toHaveBeenCalled(); ● You can mock Ajax calls via Ajax.js jasmine.Ajax.install(); var doneFn = jasmine.createSpy("success"); var xhr = new XMLHttpRequest();

Listeners, Spies: Mocha

Listeners, Spies: Jasmine … expect(jasmine.Ajax.requests.mostRecent().url).toBe ('/so/cool/');

More advanced examples, Jasmine Some sugar: Adding Matchers (awesome) describe('Hello world', function() { beforeEach(function() { this.addMatchers({ toBeDivisibleByTwo: function() { return (this.actual % 2) === 0; } }); }); it('is divisible by 2', function() { expect(gimmeANumber()).toBeDivisibleByTwo(); }); });

About @Tung Vu Author: Tung Vu@: You can follow me at: ○

About @Nicolas Author: Nicolas Embleton @: You can follow me at: ● ● And the Javascript Ho Chi Minh City Meetup: ● ● ● ○ Our group is looking for Projects to mentor. If you have a project you want support for, contact me

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

TAP & Tape, the awesome way to test JavaScript -

node-tap & tape are simple, awesome testing tools for JavaScript. The JavaScript community has grown up with testing culture, and the vast majority of ...
Read more

JavaScript unit testing with Mocha and Grunt | Something ...

Something Awesome by ... of three in which I will explain how I have setup unit testing for a JavaScript ... JavaScript unit testing with Mocha ...
Read more

Create a new fiddle - JSFiddle

... HTML or CoffeeScript online with JSFiddle code editor. Test ... online javascript editor, testing javascript online, online ide, online code ...
Read more

Awesome testing with NetBeans, Angular 2 and TypeScript ...

The post Awesome testing ... It was originally developed by the AngularJS team with the goal to replace “standalone” JavaScript testing ...
Read more

JavaScript Testing: Unit vs Functional vs Integration Tests

Eric Elliott takes JavaScript testing under the microscope, ... Awesome info, but I am still unclear on how do unit tests for my app.
Read more

Sauce Labs: Selenium Testing, Mobile Testing, JS Unit Testing

Cross browser testing made awesome. ... Sauce Labs Automated Testing for Visual Studio ... Run Selenium & JavaScript unit tests for web apps on desktop ...
Read more

Testing Client/Server JavaScript - YouTube

A walkthrough of starting on tests for your JavaScript using ... Testing Client/Server JavaScript ... JS Unit Testing Good Practices ...
Read more

Unit Testing Best Practices in AngularJS - Andy Shora ...

Unit Testing Best Practices ... Jasmine - "Jasmine is a behavior-driven development framework for testing JavaScript code ... awesome docs) Mocha - "The ...
Read more

GitHub - sorrycc/awesome-javascript: A collection of ...

awesome-javascript - A collection of awesome browser-side JavaScript libraries, ... jasmine - DOM-less simple JavaScript testing framework.
Read more