From 923e2a837d515eb0d33792aba8bbb839f0012067 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Fri, 16 Dec 2016 13:50:27 +0100 Subject: use std::function for the test method in TestCaller This allows us to pass in any callable e.g. results of std::bind. --- include/cppunit/TestCaller.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'include/cppunit') diff --git a/include/cppunit/TestCaller.h b/include/cppunit/TestCaller.h index bbb9002..fbf3902 100644 --- a/include/cppunit/TestCaller.h +++ b/include/cppunit/TestCaller.h @@ -4,6 +4,8 @@ #include #include +#include + #if defined(CPPUNIT_USE_TYPEINFO_NAME) # include @@ -116,7 +118,7 @@ public: TestCase( name ), m_ownFixture( true ), m_fixture( new Fixture() ), - m_test( test ) + m_test_function( std::bind(test, m_fixture) ) { } @@ -133,7 +135,7 @@ public: TestCase( name ), m_ownFixture( false ), m_fixture( &fixture ), - m_test( test ) + m_test_function( std::bind(test, &fixture) ) { } @@ -150,9 +152,17 @@ public: TestCase( name ), m_ownFixture( true ), m_fixture( fixture ), - m_test( test ) + m_test_function( std::bind(test, fixture) ) { } + + TestCaller(std::string name, std::function test_function, Fixture* fixture): + TestCase(name), + m_ownFixture(true), + m_fixture(fixture), + m_test_function(test_function) + { + } ~TestCaller() { @@ -162,7 +172,7 @@ public: void runTest() { - (m_fixture->*m_test)(); + m_test_function(); } void setUp() @@ -187,7 +197,7 @@ private: private: bool m_ownFixture; Fixture *m_fixture; - TestMethod m_test; + std::function m_test_function; }; -- cgit v1.2.1