RobotTestingFramework 2.0.1
Robot Testing Framework
Loading...
Searching...
No Matches
simple_fixture.cpp

This example shows using a FixtureManager to setup any fixture required for a TestSuite.

This example shows using a FixtureManager to setup any fixture required for a TestSuite.

/*
* Robot Testing Framework
*
* Copyright (C) 2015-2019 Istituto Italiano di Tecnologia (IIT)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <cstdio>
using namespace robottestingframework;
class MyTest1 : public TestCase
{
public:
MyTest1() :
TestCase("MyTest1")
{
}
void run() override
{
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(3 < 5, "is not smaller");
}
};
class MyTest2 : public TestCase
{
public:
MyTest2() :
TestCase("MyTest2")
{
}
void run() override
{
ROBOTTESTINGFRAMEWORK_TEST_REPORT("testing equality");
ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(3 == 3, "are not equal");
}
};
class MyFixture : public FixtureManager
{
public:
MyFixture(FixtureEvents* dispatcher) :
FixtureManager(dispatcher)
{
}
bool setup(int argc, char** argv) override
{
// setup and initialize the fixture
// ...
printf("Myfixture setup!\n");
// return true if everything is fine.
return true;
}
bool check() override
{
printf("Myfixture checking ...\n");
return true;
}
void tearDown() override
{
// uninitialize the fixture
// ...
printf("Myfixture tear down!\n");
// for an example if there is any error during tear down,
// throw an exception.
throw FixtureException(TestMessage("MyFixture cannot tear down!"));
}
};
int main(int argc, char** argv)
{
// create a test listener to collect the result
ConsoleListener listener(false);
// create a collector to get computer readable
// test results
// create a test result and add the listeners
TestResult result;
result.addListener(&listener);
result.addListener(&collector);
// create a test suite
TestSuite suite("MyTestSuite");
// create a fixture manager for the test suite
MyFixture fixture(&suite);
suite.addFixtureManager(&fixture);
// creates test cases and add them to the suite
MyTest1 test1;
MyTest2 test2;
suite.addTest(&test1);
suite.addTest(&test2);
// create a test runner and run the tests
TestRunner runner;
runner.addTest(&suite);
runner.run(result);
// return the number of failed tests
return collector.failedCount();
}
#define ROBOTTESTINGFRAMEWORK_TEST_FAIL_IF_FALSE(condition, message)
Conditional failure report.
Definition TestAssert.h:149
#define ROBOTTESTINGFRAMEWORK_TEST_REPORT(message)
Reporting a message to the TestResult.
Definition TestAssert.h:131
class ConsoleListener listens to any messages reported by the tests during the test run,...
The FixtureException class Ficture exception is used when a there is a probleme during fixture setup.
Definition Exception.h:127
The FixtureManager can be used to to setup any fixture which is required for the tests before executi...
The base class to implememnt a test case.
Definition TestCase.h:42
A formated message with details.
Definition TestMessage.h:33
The TestResultCollector class can be used to store all the events issued by the test cases,...
unsigned int failedCount()
failedCount gets the number of failed test cases.
The TestResult class is used to deliver the test results including any error and failures produced by...
Definition TestResult.h:44
void addListener(TestListener *listener)
Adding a new listener.
The TestRunner class runs the tests added as TestCase or TestSuite.
Definition TestRunner.h:42
void run(TestResult &result)
Run all the tests in the list.
void addTest(Test *test)
Adding a new test.
The TestSuite holds a group of tests.
Definition TestSuite.h:55