-
Notifications
You must be signed in to change notification settings - Fork 57
/
README
83 lines (59 loc) · 2.86 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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_Development
http://dannorth.net/introducing-bdd
http://dannorth.net/whats-in-a-story
http://www.ibm.com/developerworks/java/library/j-cq09187/index.html
Arnaud Brejeon
arnaud.brejeon@laposte.net
Toshiyuki Kawanishi
toshi.kawanishi@gmail.com
Erkki Moorits
erkki.moorits@mail.ee