Fast Site Testing with ExpectThat using CoffeeScript, Zombie, Mocha, and Node
A few posts ago, I showed how to use ExpectThat with Mocha and Node.js. Today, I'll show a simple example of using ExpectThat with Zombie.js--a full-stack testing framework.
Zombie.js is a fast, headless testing framework that provides various functionality to write tests that hit your full technology stack. While I generally prefer to write more fine-grained, isolated tests, it's important to also have a few smoke tests and/or integration tests to verify end-to-end functionality. Zombie makes these kinds of tests easy, while allowing me to still use ExpectThat and Mocha.
Here's a simple example that populates two input elements and then verifies that the values of those input fields contain the expected text.
zombie = require("zombie") require("expectThat.mocha") browser = new zombie.Browser() describe "When populating two text boxes", -> expectThat "they should have values of foo and bar", (done) -> browser.visit "http://127.0.0.1/~dmohl/mocha-zombie/specs.html", -> browser .fill(".search", "foo") .fill("#test", "bar") input1 = browser.querySelector ".search" input2 = browser.querySelector "#test" input1.value.should equal "foo" input2.value.should equal "bar" done()
You can find the full example here.
After a few commands such as " coffee --output lib/ specs/ " and " mocha 'lib/example.spec.js' --reporter spec ", you should see an output that looks something like this:
To learn more about ExpectThat, visit https://github.com/dmohl/expectThat.