Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bigwhite/cbehave
A Behavior Driven Development Framework for C
https://github.com/bigwhite/cbehave
bdd c unit-testing
Last synced: 6 days ago
JSON representation
A Behavior Driven Development Framework for C
- Host: GitHub
- URL: https://github.com/bigwhite/cbehave
- Owner: bigwhite
- License: other
- Created: 2013-04-01T14:30:11.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-07-12T02:14:11.000Z (over 11 years ago)
- Last Synced: 2023-05-23T16:40:16.925Z (over 1 year ago)
- Topics: bdd, c, unit-testing
- Language: Shell
- Size: 553 KB
- Stars: 26
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
cbehave - A Behavior Driven Development Framework for C
=======Recent News
-----------
- 2013-04-02 fork a copy to https://github.com/bigwhite/cbehave.git.
- 2012-04-16 cbehave 0.2.0 released.
- 2011-08-14 cbehave 0.1.0 version released.Introduction
-------------
CBehave - A Behavior Driven Development Framework for C.Main Features
-------------- use the "feature + scenario" structure which is (inspired by Cucumber)
- use classical "given-when-then" template to describe the behavior scenario
- support mockA Typical Example
-------------An example:
#include
#include
#include "cbehave.h"FEATURE(1, "strstr")
SCENARIO("The strstr finds the first occurrence of the substring in the source string")
GIVEN("A source string: [Lionel Messi is a great football player]")
char *str = "Lionel Messi is a great football player";
GIVEN_END
WHEN("we use strstr to find the first occurrence of [football]")
char *p = strstr(str, "football");
WHEN_ENDTHEN("We should get the string: [football player]")
SHOULD_STR_EQUAL(p, "football player");
THEN_END
SCENARIO_ENDSCENARIO("If strstr could not find the first occurrence of the substring, it will return NULL")
GIVEN("A source string: FC Barcelona is a great football club.")
char *str = "FC Barcelona is a great football club";
GIVEN_ENDWHEN("we use strstr to find the first occurrence of [AC Milan]")
char *p = strstr(buf, "AC Milan");
WHEN_ENDTHEN("We should get no string but a NULL")
SHOULD_STR_EQUAL(p, NULL);
THEN_END
SCENARIO_END
FEATURE_ENDint main() {
cbehave_feature strstr_features[] = {
{feature_idx(1)},
};return cbehave_runner("Strstr Features are as belows:", strstr_features);
}
The result of the example could be seen like:*******************************************************************
CBEHAVE -- A Behavior Driven Development Framework for C
By Tony Bai
*******************************************************************
Strstr Features are as belows:
Feature: strstr
Scenario: The strstr finds the first occurrence of the substring in the source string
Given: A source string: Lionel Messi is a great football player
When: we use strstr to find the first occurrence of [football]
Then: We should get the string: [football player]
Scenario: If strstr could not find the first occurrence of the substring, it will return NULL
Given: A source string: FC Barcelona is a great football club.
When: we use strstr to find the first occurrence of [AC Milan]
Then: We should get no string but a NULL
Summary:
total features: [1]
failed features: [0]
total scenarios: [2]
failed scenarios: [0]Build
------
- Download the source code package
- unzip the package
- configure->make->make install
if you want to compile in 64-bit mode, pass "CPPFLAGS=-m64 LDFLAGS=-m64" to configure.sometimes, you may encounter such error:
mv: cannot stat `.deps/cbehave.Tpo': No such file or directory
make[1]: *** [cbehave.lo] Error 1
a solution for this is execute "libtoolize -f" before "configure".User Guide
-------------
For more information, please open and read the project wiki. cbehave user guide is ready for you.