<commit_before>= Testatoo documentation
v2.0, 2014
:toc:
:doctype: book
:icons: font
:source-highlighter: highlightjs
:imagesdir: images
:homepage: https://github.com/Ovea/testatoo
:desc: This is the documentation of Testatoo
:testaoo-version: 2.0.b1

image:logo.png[float="left"]

= Introduction

Testatoo is a web user interface testing tool. It's the result of numerous real-world observations of developers in the trenches in the area of GUI testing.
Working for many years to promote the TDD approaches, we often faced difficulties in their implementation for the graphical layer of applications.

The "test FIRST" principle excludes all scenario recorder based approaches that only allow you to write a posteriori tests.
Our experience has taught us that this path is a dead end (but we reserve this for another discussion...).

Another problem is GUI tests are brittle and costly! We do think that this is due to the lack of abstraction in existing UI testing tools.

Testatoo provides on one hand an abstraction of the UI business domain through an expressive API and on the other hand a way to express this domain via a DSL (a button semantically stays a buttons whatever the technology).
With Testatoo you can therefore write tests with a seldom achieved level of expressiveness and make these tests INDEPENDENT of the underlying technology.

Testatoo can therefore transform the test in real assets, present throughout the life of the application and always in tune with the latest version of the application.

= Technologies

Testatoo is built on top of http://code.google.com/p/selenium/[WebDriver], it can work with any browser supported by https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions[WebDriver] (IE, Google-chrome, Firefox, ...).
Testatoo provides like http://www.gebish.org/testing[geb] an extra layer of convenience and productivity, it is always possible to "fallback" to the WebDriver level to do something directly should you need to.
But Testatoo adds a powerful DSL while maintaining the usage of pure Java and keeps the advantage of a strong typed language.

Example of a test syntax :

[source, groovy]
-------------------------------------------------------------------------------
    assertThat textField has label('Text')
    assertThat textField has placeholder('Text')
    assertThat textField is empty
-------------------------------------------------------------------------------

= Why should I use Testatoo


= Installation & Usage

Via Maven…

[source, xml]
-------------------------------------------------------------------------------
<dependency>
    <groupId>org.testatoo</groupId>
    <artifactId>testatoo-core</artifactId>
    <version>{testaoo-version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId><commit_msg>Improve  documentation<commit_after>= Testatoo documentation
v2.0, 2014
:toc:
:doctype: book
:icons: font
:source-highlighter: highlightjs
:imagesdir: images
:homepage: https://github.com/Ovea/testatoo
:desc: This is the documentation of Testatoo
:testaoo-version: 2.0.b1

image:logo.png[float="left"]

= Introduction

Testatoo is a web user interface testing tool. It's the result of numerous real-world observations of developers in the trenches in the area of GUI testing.
Working for many years to promote the TDD approaches, we often faced difficulties in their implementation for the graphical layer of applications.

The "test FIRST" principle excludes all scenario recorder based approaches that only allow you to write a posteriori tests.
Our experience has taught us that this path is a dead end (but we reserve this for another discussion...).

Another problem is GUI tests are brittle and costly! We do think that this is due to the lack of abstraction in existing UI testing tools.

Testatoo provides on one hand an abstraction of the UI business domain through an expressive API and on the other hand a way to express this domain via a DSL (a button semantically stays a buttons whatever the technology).
With Testatoo you can therefore write tests with a seldom achieved level of expressiveness and make these tests INDEPENDENT of the underlying technology.

Testatoo can therefore transform the test in real assets, present throughout the life of the application and always in tune with the latest version of the application.

= Technologies

Testatoo is built on top of http://code.google.com/p/selenium/[WebDriver], it can work with any browser supported by https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions[WebDriver] (IE, Google-chrome, Firefox, ...).
Testatoo provides like http://www.gebish.org/testing[geb] an extra layer of convenience and productivity, it is always possible to "fallback" to the WebDriver level to do something directly should you need to.
But Testatoo adds a powerful DSL while maintaining the usage of pure Java and keeps the advantage of a strong typed language.

Example of a test syntax :

[source, groovy]
-------------------------------------------------------------------------------
    assertThat textField has label('Text')
    assertThat textField has placeholder('Text')
    assertThat textField is empty
-------------------------------------------------------------------------------

= Why should I use Testatoo


= Installation & Usage

Via Maven…

[source, xml]
-------------------------------------------------------------------------------
<dependency>
    <groupId>org.testatoo</groupId>
    <artifactId>testatoo-core</artifactId>
    <version>{{testaoo-version}}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
{'fraction_non_alphanumeric': 0.14268012037528766, 'fraction_numerical': 0.003186404673393521, 'mean_word_length': 3.07942238267148, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2753129', 'n_tokens_mistral': 1422, 'n_tokens_neox': 1322, 'n_words': 674}