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 JUnit or TestNG.

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!
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
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

Links