Skip to content
Jeff Nyman edited this page Oct 3, 2015 · 3 revisions

Symbiont is a Ruby gem that provides a micro-framework for automated testing. Specifically, Symbiont allows you to leverage the power of describing your application in terms of activity and page models.

What Symbiont does is attach to any such models. It then proxies watir-webdriver to the model and allows you to call Watir actions directly based on elements or actions that you provide on the model. The reason for using Watir rather than the sometimes more popular Selenium is mainly for two reasons:

  1. Watir-WebDriver provides a nice high-level API.
  2. Selenium is incredibly annoying to work with directly.

Do note, however, that watir-webdriver does allow you to drop down to selenium-webdriver if you need to.

The concept of activity models and page models are conceptually similar if not identical to the concept of page objects, which, as a concept, was formerly known as the window driver pattern.

The goal of Symbiont is to provide a minimal DSL so that a fluent interface can be used for constructing test execution logic. This fluent interface provides for compressibility of your test logic, allowing for more factoring, more reuse, and less repetition.

You can use Fluent directly as an automated testing solution or you can use it with other tools such as RSpec, Cucumber, or my own Specify tool.