Project Description

Expect is a framework for writing tests in natural language (including BDD style) and as executable specifications.
It integrates with your unit test framework and with VisualStudio, in order to provide a smooth development workflow.

If you have any question, you could join the mailing list "expect-framework" on
You could also check the blog here

What is an executable specification ?

The goal is to have a document that describe the way your system behave (a specification), and to be able to prove that document against the actual system.

One of the precursor for this kind of testing is Fit ( Fit inspire a lot of other projects : Fitnesse ( and GreenPepper (, Concordion, ...

With this kind of tools, you usually have a specification document in one form or another (text, html, word, etc) and you write fixture to bridge specification and system under test.

A typical Expect specification looks like this within Visual Studio :

My grand-mother loves | a lot of things |
| name       | love level |
| apple pie  | very much  |
| ice-cream  | much       |

#this is a text description that is not considered as executable
But she don't love |spiders|

From this text specifications, you could generate a specification document that you could version, and share with others.

Why another tool ?

Most tool in this field use a Wiki as a repository for specifications. The problem is that Wikis are not practical from the developper point of view. The wiki is not integrated in your environment, and you have to version your specification along with the system, which could be very hard with a wiki.

The primary motivation for using Wikis was to get the customer involved in writing the specifications. Experience shows that most of the time, they don't... And they probably should not. Customers have to provide their own added value...
Customers must get involved in defining and validating specifications, but they usually have better use of their time than writing specifications.

The goal of Expect framework is to provide a tool that is developper friendly and fully integrated into Visual Studio. Developper write specification, fixtures, and generate specification document from within Visual Studio. The specifications are stored in your source control repository like any other file.

The specification run with your favorite unit test framework, and could be generated from the command line. It means that Expect integrate nicely in your continuous integration system without new skills or configuration.

The syntax is very flexible and allow for writing atomic specifications (like BDD style) but also for larger scale specifications (like integration tests).

Moreover, there are not so many (free) tools in the .Net ecosystem in this field.


Beta 3 : Enhancing report generation
RC : Bugfix and Visual Studio integration improvements

Last edited Sep 7, 2010 at 1:45 PM by gleborgne, version 23