Welcome to FEST (Fixtures for Easy Software Testing)


FEST is a collection of APIs, released under the Apache 2.0 license, which mission is to simplify software testing.

Modules


FEST is composed of various modules, all of them can be used with TestNG or JUnit.

Swing Module:

  • DSL-oriented API for functional Swing GUI testing
  • Simulation of user-generated events and reliable GUI component lookup
  • Easy-to-use and powerful API that simplifies creation and maintenance of Swing GUI functional tests:
      dialog.comboBox("domain").select("Users");
      dialog.textBox("username").enterText("alex.ruiz");
      dialog.button("ok").click();
      dialog.optionPane().requireErrorMessage()
                         .requireMessage("Please enter your password");
  • Ability to take screenshots of failed GUI tests and embed them in a HTML test report
  • And much more!

JavaFX Module:

  • Maven plugin for compiling JavaFX sources
  • DSL-oriented API for functional JavaFX GUI testing
  • Simulation of user-generated events and reliable GUI component lookup
  • Easy-to-use and powerful API that simplifies creation and maintenance of JavaFX GUI functional tests
  • Ability to embed screenshots of failed GUI tests in HTML report

Assertions Module:

  • 'Flexible' or 'fluent' assertions:
      assertThat(yoda).isInstanceOf(Jedi.class)
                      .isEqualTo(foundJedi)
                      .isNotEqualTo(foundSith);
  • Assertions for Objects, Strings, arrays (including primitives), primitives, Collections, images and more!
  • Assertions can be extended using custom conditions or custom assertion classes

Reflection Module:

  • 'Fluent interface' for simplifying usage of reflection:
      Person person = constructor().withParameterTypes(String.class)
                                   .in(Person.class)
                                   .newInstance("Yoda");

      method("setName").withParameterTypes(String.class)
                       .in(person)
                       .invoke("Luke");

      field("name").ofType(String.class)
                   .in(person)
                   .set("Anakin");

Mocks Module:

  • Eliminates code duplication when using mock objects
  • Clearly separates mock expectations from code to test, improving code readability


Modules

edit SideBar