Book Image

Using Node.js for UI Testing

By : Pedro Teixeira
Book Image

Using Node.js for UI Testing

By: Pedro Teixeira

Overview of this book

<p>Automating tests for your user interfaces has always been the holy grail of programming. Now, using Zombie.js and Mocha you can create and quickly run your tests, allowing you to test even small changes. Increase your confidence in the code and minimize the number of times you have to use a real browser while you develop.</p> <p>"Using Node.js for UI Testing" is a quick and thorough guide on how to automatically test your web app, keeping it rock solid and bug-free. You will learn how to simulate complex user behaviour and verify that your application behaves correctly.</p> <p>You will create a web app in Node.js that uses complex user interactions and AJAX; by the end you will be able to fully test it from the command-line. Then you will start creating the user interface tests for this application using Mocha as a framework and Zombie.js as a headless browser.</p> <p>You will also create a complete test suite, module by module, testing simple and complex user interactions.</p>
Table of Contents (15 chapters)

Summary


Your browser developer tools are better suited for debugging your browser application. However, if you run into Zombie-specific issues, there are several techniques that may help you.

One is to enable the Zombie debugging output. This will show you which resources the browser is loading and what the corresponding response status codes that are shown alongside are.

You can run specific tests. When debugging a specific problem in a test, you can also restrict Mocha to run only that test by using the -g <pattern> option.

You can use the console.log command in the code that runs in the browser; the output will appear in the console.

You can view the current browser state. You can inspect the browser state by using the browser.dump call, or by logging the result of browser.html to the console.

If you need to access the whole document at some stage of your test, you can also log the return value of browser.html().