There are no reviews yet. Be the first to send feedback to the community and the maintainers!
Repository Details
Behavior driven development in C
CSpec: Behaviour-driven development in C
=========================================
Overview
--------
CSpec is a Behaviour-driven Development (http://behaviour-driven.org/) framework for C.
It provides a spec framework for describing the behavior of the functions of your system.
The syntax is inspired from RSpec (http://rspec.info/) to be as legible as possible.
The source code is as portable and as light as possible to make it easy to run the library
on embedded devices.
Documentation
-------------
CSpec is mostly based on the macros defined in cspec.h . The macros can be differentiated in two
groups: structural macros that define the structure of the specification and expectation macros
that describe the tests to be evaluated.
Writing the spec of a function is quite straightforward:
- Enclose your spec in between the macros DESCRIBE and END_DESCRIBE with function name and caption
- Enclose each part of the spec between the macros IT and END_IT with the caption
- For each part of the specification, the tests should be evaluated with one of the expectation macros
That's it. Your specification is ready to be run.
Running a spec is done by calling CSpec_Run with the spec name (using macro DESCRIPTION) and selecting
an output type.
There are currently 4 basic outputs provided in CSpec:
- OutputVerbose : provides much information as possible: captions, evaluated tests and results
- OutputUnit : provides less information, concentrated more one the number of failed tests
(similar to unit tests)
- OutputHeader : provides information that does not depend on the tests result and can be used
as function header
- OutputXML : provides verbose information in XML format
It is easy to define other outputs depending on your needs and platform constraints.
TODO: explain how to make new output.
Spec framework sample
---------------------
There are 2 samples provided with the library. They are located in directories sample and sample_skip.
sample contains the specifications of 2 functions from the C library and is the place to check first because
of its simplicity.
sample_skip specifies a skip list library and therefore is a small proof of concept for CSpec.
Future & ideas
--------------
- Put in place a story framework
- Check how to mock
- Automake autoconf
Compile and link
----------------
- Windows : directory VC contains VC++ 6.0 dsw and dsp files to compile and link the library and
the sample
- OS X /Linux : run autogen.sh
Links
-----
http://behaviour-driven.org/http://en.wikipedia.org/wiki/Behavior_Driven_Developmenthttp://dannorth.net/introducing-bddhttp://dannorth.net/whats-in-a-storyhttp://www.ibm.com/developerworks/java/library/j-cq09187/index.html
Arnaud Brejeon
[email protected]
Toshiyuki Kawanishi
[email protected]
Erkki Moorits
[email protected]