Cpputestを使ってみる - arosh/arosh.github.com GitHub Wiki
環境
Ubuntu 14.04 (amd64), cpputest3.4
導入
sudo apt-get install -y cpputest
HelloWorld
// hello.cpp
#include <CppUTest/CommandLineTestRunner.h>
int add(int a, int b) {
return a + b;
}
TEST_GROUP(addG) {
void setup() { }
void teardown() { }
};
TEST(addG, addTest) {
CHECK_EQUAL(2, add(1, 1));
}
int main(int argc, char *argv[]) {
return CommandLineTestRunner::RunAllTests(argc, argv);
}
# Makefile
CXXFLAGS=-D_GLIBCXX_DEBUG -std=c++11 -Wall -Wextra -g
LDLIBS=-lCppUTest
- setup()とteardown()はTESTごとに呼び出される (CHECKごとではなく)。
- Assertionはいろいろあるけど(expedted, actual)の順なので注意
- CHECK_EQUALはマクロによって実装されているので, actualに関数を書いたりすると、その関数が複数回呼び出される。モックで呼び出し回数をチェックしている時には注意(モックのテストを書くとか意味不明だけど)。CHECK_EQUALではなくLONG_EQUALを使えばこの問題は起こらない。[ref]