RobotTestingFramework  2.0.1
Robot Testing Framework
Public Member Functions | Private Attributes | List of all members
robottestingframework::FixtureManager Class Reference

The FixtureManager can be used to to setup any fixture which is required for the tests before executing the tests by a TestSuite. More...

#include <robottestingframework/FixtureManager.h>

Public Member Functions

 FixtureManager (std::string param="")
 FixtureManager constructor The parameter string is parsed into (argc/argv) format and will be passed to the fixture manager using setup(int argc, char** argv). More...
 
 FixtureManager (FixtureEvents *dispatcher, std::string param="")
 FixtureManager constructor The parameter string is parsed into (argc/argv) format and will be passed to the fixture manager using setup(int argc, char** argv). More...
 
virtual ~FixtureManager ()
 FixtureManager destructor. More...
 
bool setup ()
 setup is called by a test suite. More...
 
virtual bool setup (int argc, char **argv)
 setup is called to start the fixture manager More...
 
virtual void tearDown ()
 tearDown is called after to stop the fixture manager More...
 
virtual bool check ()
 check if the fixture is okay. More...
 
void setDispatcher (FixtureEvents *dispatcher)
 setDispatcher Sets the FixtureEvents dispatcher More...
 
FixtureEventsgetDispatcher ()
 getResult returns an instance of FixtureEvents dispatcher More...
 
void setParam (const std::string param)
 setParam Sets the optional parameters of the fixture manager. More...
 
std::string getParam ()
 getParam gets the original parameter string which is set for the fixture manager More...
 

Private Attributes

std::string param
 
FixtureEventsdispatcher
 

Detailed Description

The FixtureManager can be used to to setup any fixture which is required for the tests before executing the tests by a TestSuite.

The fixtureCollapsed method of the FixtureEvents class is used by a fixture manager to inform any class which inherited from FixtureEvents that the corresponding fixture has been collapsed.

Here's an example of using a FixtureManager:

/*
* 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();
}
Examples:
simple_fixture.cpp.

Definition at line 63 of file FixtureManager.h.

Constructor & Destructor Documentation

◆ FixtureManager() [1/2]

robottestingframework::FixtureManager::FixtureManager ( std::string  param = "")

FixtureManager constructor The parameter string is parsed into (argc/argv) format and will be passed to the fixture manager using setup(int argc, char** argv).

Parameters
paramfixture manager optional parameters

◆ FixtureManager() [2/2]

robottestingframework::FixtureManager::FixtureManager ( FixtureEvents dispatcher,
std::string  param = "" 
)

FixtureManager constructor The parameter string is parsed into (argc/argv) format and will be passed to the fixture manager using setup(int argc, char** argv).

Parameters
dispatcheran instance of FixtureEvents
paramfixture manager optional parameters

◆ ~FixtureManager()

virtual robottestingframework::FixtureManager::~FixtureManager ( )
virtual

FixtureManager destructor.

Member Function Documentation

◆ check()

virtual bool robottestingframework::FixtureManager::check ( )
virtual

check if the fixture is okay.

This is called automatically from the corresponding test suite to ensure the correctness of the fixture before running each test case.

Returns
true or false depending of correctness of the fixture

◆ getDispatcher()

FixtureEvents* robottestingframework::FixtureManager::getDispatcher ( )

getResult returns an instance of FixtureEvents dispatcher

Returns
an instance of TestResult

◆ getParam()

std::string robottestingframework::FixtureManager::getParam ( )

getParam gets the original parameter string which is set for the fixture manager

Returns
a string parameter

◆ setDispatcher()

void robottestingframework::FixtureManager::setDispatcher ( FixtureEvents dispatcher)

setDispatcher Sets the FixtureEvents dispatcher

Parameters
dispatcheran instance of FixtureEvents dispatcher

◆ setParam()

void robottestingframework::FixtureManager::setParam ( const std::string  param)

setParam Sets the optional parameters of the fixture manager.

The parameter string is parsed into (argc/argv) format and will be passed to the fixture manager using setup(int argc, char** argv).

Parameters
paramthe parameter string

◆ setup() [1/2]

bool robottestingframework::FixtureManager::setup ( )

setup is called by a test suite.

The setup() function parses the fixture paramteres and call the setup(int argc, char**argv) which can be ovveriden by the user customized fixture manager.

Returns
true or false depending of the test initialization

◆ setup() [2/2]

virtual bool robottestingframework::FixtureManager::setup ( int  argc,
char **  argv 
)
virtual

setup is called to start the fixture manager

Parameters
argcThe number of the pasred argument from string parameter
argvThe arguments which is parsed using string parameter
Returns
true or false depending of the fixture initialization

◆ tearDown()

virtual void robottestingframework::FixtureManager::tearDown ( )
virtual

tearDown is called after to stop the fixture manager

Member Data Documentation

◆ dispatcher

FixtureEvents* robottestingframework::FixtureManager::dispatcher
private

Definition at line 148 of file FixtureManager.h.

◆ param

std::string robottestingframework::FixtureManager::param
private

Definition at line 147 of file FixtureManager.h.


The documentation for this class was generated from the following file: