Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Extended one-liner definition
Watai is a tool for Front-End Ops. It is defined as a declarative, bottom-up BDD, full-stack web testing framework. This document tries to define those qualifications a bit more precisely.
Most frameworks offering web integration tests make you write in an imperative fashion: execute some commands (usually walking the DOM), then assert some values (usually against some HTML attributes).
Watai shifts the testing procedure to be declarative, that is describing components states and associated transitions from one state to the other.
In web development, testing is often limited to unit level on server-side code, sometimes on client-side code, and rarely on full-stack (or end-to-end) functional testing, i.e. in the actual production environment: the browser. There are many reasons for this, too many for this quick definition.
What is important is that Watai uses Selenium to execute your tests in all browsers, so you can be confident in their results. You don't have to know a thing about Selenium though, as the whole point of Watai is abstracting away those implementation details.
Bottom-up BDD [still under active development]
Watai offers a Behavior-Driven Development frontend, in order to make your test suite a good [boundary object](> https://en.wikipedia.org/wiki/Boundary_object) across all your project’s stakeholders, and to make the purpose of testing clearer to everyone, including developers.
However, instead of presenting the usual scenario instrumentation pattern (describe expected feature, write scenario, instrument scenario, write actual testing code), Watai > leverages its declarative concepts and generates business-readable scenarios from the tests description information. Hence the “bottom-up” phrasing: instead of starting at the human-readable top-level, you finish your testing experience with it.