Added a macro to help mocking a destructor

git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@66 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
mat007 2009-11-21 10:52:41 +00:00
parent 6354375b7e
commit 51379e7844
2 changed files with 18 additions and 0 deletions

View file

@ -196,6 +196,10 @@ namespace detail
#define MOCK_METHOD_TPL(M, n) \ #define MOCK_METHOD_TPL(M, n) \
MOCK_METHOD_EXT_TPL(M, n, MOCK_SIGNATURE_TPL(M), M) MOCK_METHOD_EXT_TPL(M, n, MOCK_SIGNATURE_TPL(M), M)
#define MOCK_DESTRUCTOR( T, t ) \
~T() { exp##t(); } \
MOCK_METHOD_EXPECTATION(void(), t)
#define MOCK_EXPECT(o,t) MOCK_MOCKER(o,t).expect( __FILE__, __LINE__ ) #define MOCK_EXPECT(o,t) MOCK_MOCKER(o,t).expect( __FILE__, __LINE__ )
#define MOCK_RESET(o,t) MOCK_MOCKER(o,t).reset() #define MOCK_RESET(o,t) MOCK_MOCKER(o,t).reset()
#define MOCK_VERIFY(o,t) MOCK_MOCKER(o,t).verify() #define MOCK_VERIFY(o,t) MOCK_MOCKER(o,t).verify()

View file

@ -202,3 +202,17 @@ BOOST_AUTO_TEST_CASE( mock_functor_with_tag_has_no_effect )
f.tag( "my functor" ); f.tag( "my functor" );
BOOST_CHECK_EQUAL( "f", to_string( MOCK_MOCKER( f, _ ) ) ); BOOST_CHECK_EQUAL( "f", to_string( MOCK_MOCKER( f, _ ) ) );
} }
namespace
{
MOCK_CLASS( my_destroyed_class )
{
MOCK_DESTRUCTOR( my_destroyed_class, destructor )
};
}
BOOST_AUTO_TEST_CASE( mocking_a_destructor )
{
my_destroyed_class c;
MOCK_EXPECT( c, destructor ).once();
}