Exemples de EasyUnit (v. 1.0 Beta 2)
Exemple simple
// Stack.h
class Stack {
public:
int size();
bool isEmpty();
};
|
// Stack.cpp
#include "Stack.h"
int Stack::size() { return 0; }
bool Stack::isEmpty() { return true; }
|
// StackTest.cpp
#include "easyunit/test.h"
#include "Stack.h"
using namespace easyunit;
TEST(Stack,size)
{
Stack s;
ASSERT_TRUE(s.size() == 1);
}
TEST(Stack,isEmpty)
{
Stack s;
ASSERT_TRUE(s.isEmpty());
}
|
// main.cpp
#include "easyunit/testharness.h"
using namespace easyunit;
int main()
{
TestRegistry::runAndPrint();
} |
// Sortie de la console:
-- EasyUnit Results --
SUMMARY
Test summary: FAIL
Number of test cases ran: 1
Test cases that succeeded: 0
Test cases with errors: 0
Test cases that failed: 1
DETAILS
Test case "Stack" FAILED with 0 error(s), 1 failure(s) and 1 success(es):
Test "size" FAILED :
Failure: "s.size() == 1" line 11 in StackTest.cpp
Test "isEmpty" SUCCEEDED!
|
Exemple complet avec "fixtures"
// Stack.h
class Stack {
public:
int size();
bool isEmpty();
};
|
// Stack.cpp
#include "Stack.h"
int Stack::size() { return 0; }
bool Stack::isEmpty() { return true; }
|
// Queue.h
class Queue {
public:
void setSize(long s) {size_ = s);
long size() {return size_;}
bool isEmpty() {return true;}
private:
long size;
};
|
// QueueTest.cpp
#include "easyunit/test.h"
#include "Queue.h"
using namespace easyunit;
DECLARE(CustomQueue)
Queue *q;
END_DECLARE
SETUP(CustomQueue)
{
q = new Queue();
q->setSize(100);
}
TEARDOWN(CustomQueue)
{
delete q;
}
TESTF(CustomQueue,test1)
{
ASSERT_TRUE(q->isEmpty());
ASSERT_TRUE(q->size() == 0);
}
TESTF(CustomQueue,test2)
{
FAIL_M("Buffer overflow");
}
|
// StackTest.cpp
#include "easyunit/test.h"
#include "Stack.h"
using namespace easyunit;
TEST(Stack,size)
{
Stack s;
ASSERT_TRUE(s.size() == 0);
}
TEST(Stack,isEmpty)
{
Stack s;
ASSERT_TRUE(s.isEmpty());
}
|
// main.cpp
#include "easyunit/testharness.h"
using namespace easyunit;
int main()
{
TestRegistry::runAndPrint();
} |
// Sortie de la console:
-- EasyUnit Results --
SUMMARY
Test summary: FAIL
Number of test cases ran: 2
Test cases that succeeded: 1
Test cases with errors: 0
Test cases that failed: 1
DETAILS
Test case "Stack" SUCCEEDED with 0 error(s), 0 failure(s) and 2 success(es):
Test "size" SUCCEEDED!
Test "isEmpty" SUCCEEDED!
Test case "CustomQueue" FAILED with 0 error(s), 2 failure(s) and 0 success(es):
Test "test1" FAILED :
Failure: "q->size() == 0" line 26 in QueueTest.cpp
Test "test2" FAILED :
Failure: "Buffer overflow" line 31 in QueueTest.cpp
|
© 2004 Barthélémy Dagenais
EasyUnit est distribué sous la license LGPL
|