The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Unit Testing in JavaScript

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Mark Levison

Posts: 877
Nickname: mlevison
Registered: Jan, 2003

Mark Levison an agile software developer who writes Notes from a tool user.
Unit Testing in JavaScript Posted: Nov 25, 2008 2:27 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by Mark Levison.
Original Post: Unit Testing in JavaScript
Feed Title: Notes from a Tool User
Feed URL: http://feeds.feedburner.com/NotesFromAToolUser
Feed Description: Thoughts about photography, software development, reading, food, wine and the world around us.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by Mark Levison
Latest Posts From Notes from a Tool User

Advertisement

Last week a colleague asked for my help finding better unit test tools for Java Script. He's done some digging on the state of the art with JavaScript unit tests and finds the whole lot wanting. His discoveries:


Tool Pros Cons
Jsunit: we already use it for some of our js code.
  • can be invoked from an ant build file
  • launches browser to run the tests
  • eclipse plug-in
  • Mailing list is still active
  • launches browser to run the tests
  • Does not support js file to write the unit test code: it has to embedded inside a html file
  • it has not be updated for a couple of years  - while there hasn't been a release changes have been made to the source repository (perhaps minor) in the past year.
  • rhinounit
  • ant driven
  • supports js file
  • very simple to use
  • Simulation of JavaScript engine: not advanced enough to support our code: I tried to run test code working with jsunit: I encountered issue when loading our common JavaScript files.
  • crosscheck: Note: Crosscheck wasn't tested with any code.
  • Can invoked from ant build file
  • Simulates real browser behaviour
  • Simulation of JavaScript engine from a limited number of browser versions.
  • No activity for 2 years: it does not support versions 2.x nor 3.x from Firefox.
  • jsspec
  • Runs on actual browser
  • JavaScript only framework: cannot be called from ant build file
  • jspec (no website - just a source tree)
  • Runs on actual browser
  • Does not seem to support our code:  I tried to run test code running with js unit: I encountered issue when loading our common JavaScript files.
  • JavaScript only framework: cannot be called from ant build file
  • Screw.unit (docs) Note: Not tested but it is very similar to jsspec and jspec.
  • Runs on actual browser
  • JavaScript only framework: cannot be called from ant build file
  • imageSo it seems to him that Jsunit is the only choice we have. It is not perfect though because it does not provide an easy way to apply  the TDD process for the following reasons:

    • It does not provide a simple and integrated way to run JavaScript unit test
    • It forces you to write the unit tests in a html file instead of a .js file.
    • It forces you to have a local installation of the jsunit framework in order to avoid absolute hard coded path to reference js unit files.

    As a consequence, you have to switch back and forth from you IDE and all the browsers we want to support while "TDDing" in JavaScript. It is feasible but doesn't seem very effective.

    I tried asking about this on StackOverflow generated some interesting answers:

    Asking on the Test Driven Mailing List got another batch of answers:

    • QUnit from jQuery (got several recommendations for this)
    • Mocking tool for JavaScript
    • Use GWT and do all your work in Java

    In addition two people didn't answer the question directly but instead sent my in the direction of some books:

    Conclusions

    There isn't one good place to ask JavaScript/Unit Testing questions. The best so far seems StackOverflow.com seems to be the only real option.

    Of the Unit Test Frameworks the real options seem to be:

    I also did some digging for Mock Frameworks and have only come up with a list of tools:

    • JSMock - JSMock provides expectation recording and matching, and has the ability to return, throw, and stub on object method calls
    • Jack - The project aims to help developers write short and readable JavaScript tests.
    • MockMe - written because of Johanne's dissatisfaction with other JavaScript Mock tools.
    • QMock - very new

    There is some good writing that will give you a flavour of TDD with Javascript:

    Best ongoing sources: Pathfinder Blog and Ajaxian seem to be good reading.

    What tools did I miss? Are there any good JavaScript mailing lists where the participants discuss TDD?

    If you enjoyed this post, subscribe now to get free updates.

    Read: Unit Testing in JavaScript

    Topic: A Fresh Image Every Day - Audio Previous Topic   Next Topic Topic: Scary News

    Sponsored Links



    Google
      Web Artima.com   

    Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use