Behavior Driven Development for Adobe Flex

Welcome to a new way to build Flex applications. For years the Flex community has not embraced test driven development when creating user interfaces. And for good reason -- it's hard! Bread & Butter is a project that hopes to change the perception that testing is left up to the testers alone.

The Basics

What is BDD?

A gentle introduction into behavior driven development and why it matters.

What is Bread & Butter?

Where does this framework fit in with respect to all the other frameworks out there?

Getting Started

A walkthrough getting up and running with the environment and integrating it into a simple application.

The Workflow

Stop leaving your users in the dark and understand how Bread & Butter changes the way you write applications.

Digging in

Core Definitions

Discover the core language definitions that you'll use every time you write a feature.

Flash Definitions

Mouse and Keyboard definitions provide basic interaction with your UI components.

Flex Definitions

These ease of use definitions provide a way to interact with Flex components in complicated ways by using simple syntax.

Writing Step Definitions

Bread & Butter comes with many prebuilt step definitions but at some point you'll need to build your own. Find out how.

Want More?

Architectual Overview

See the big picture of how Bread & Butter is put together. Understanding this allows you to extend the framework to fit your needs.

The Parser

This is where the magic begins. Feature files are written in the Gherkin language and are parsed out here.

The Processor

Features and feature groups are discovered through a structure of class definitions and meta tags. The processor traverses this structure to determine what to evaluate.

The Evaluator

Once a set of instructions are determined, the evaluator runs them and returns the result of the execution.

The Runner

Every environment is different. Flex 3, Flex 4, Spark, Halo, etc. To make sure we can run anywhere, we separate out environment dependencies into separate runners.