wilsonpage
wilsonpage

Reputation: 17610

Unit testing in RequireJS and QUnit basics

I am just trying to get my head round unit testing in Javascript and RequireJS. I am building a web-app and obviously only want to have tests run in development not production builds.

Questions:

  1. Do you just test when you want to, or do you have JS tests running on every page load when in development?
  2. If tests are only on demand then how do you trigger your tests to run? Query strings (eg. ?testing=true) or something like that?

I just need an idea of how people go about testing in development. I am using BackboneJS, RequireJS and jQuery on the front end with a NodeJS/ExpressJS server on the backend.

Upvotes: 1

Views: 1587

Answers (3)

David Lee
David Lee

Reputation: 171

Grunt is a popular JS build tool. There's something called grunt-watch that can monitor certain files for change, and execute tasks accordingly. You could easily run unit tests with something like this on every save.

Usually end-to-end tests take longer, and we use the CI for that. I've seen a presentation on Meteor TDD that does end-to-end tests after every save though.

There are many end-to-end test frameworks, and they can run in a headless browser like phantom js using a build tool like grunt. Some frameworks open an actual browser to run the tests, but run via command line and report results using XML.

If you break out your components enough, the tests could have a small enough scope to run on each save.

Upvotes: 1

jdobry
jdobry

Reputation: 1041

For a Backbone project at work we have a maven build process that runs our automated javascript tests through jsTestDriver, and we read the results with Sonar. I usually run the tests manually (with 'mvn test'), but I could easily tell maven every time I save a file, for example. I wrote a post that shows how to integrate QUnit, Requirejs, and code coverage with JSTD that is independent of Maven: js-test-driver+qunit+coverage+requirejs. It also contains links to a QUnitAdapter that is way more up-to-date and developed than the one on the jsTestDriver site. I'll update this post when I manage to write about how I got jsTestDriver working with Maven and Sonar. Hope it helps.

Upvotes: 1

Krzysztof
Krzysztof

Reputation: 16150

For some core code I use JsUnit + Rhino on build server. For more complex bits (usually interface) I use selenium (it also runs on build server). I don't test anything on page load, I only use not-compressed versions of scripts. I don't any solution for integration tests.

Upvotes: 0

Related Questions