Discussion:
unit test: apply same test case to different fixtures
Hicham Mouline
2009-07-07 09:33:48 UTC
Permalink
I have auto test cases that can take fixtures whose members they access in a
uniform way.

Say struct F1... Fn

BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
{
//same code for all Fi
}

Is there a way to do this?

Regards,
Gennadiy Rozental
2009-07-07 13:46:04 UTC
Permalink
Post by Hicham Mouline
I have auto test cases that can take fixtures whose members they access in a
uniform way.
Say struct F1... Fn
BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
{
//same code for all Fi
}
Is there a way to do this?
Regards,
1. Make Fi inherit from Fi+1.
2. Use something like this:

template<typename T1,typename T2>
struct FixtureCollector : T1, T2 {};

You can now either implement above using variardic templates or implement macro
that will convert PP sequence into sequence of FixtureCollector<T1,...>:

For example

FIXTURES((T1)(T2)(T3)) should generate:

FixtureCollector<T1,FixtureCollector<T2,T3> >

use it :

BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}

Gennadiy
Hicham Mouline
2009-07-08 08:09:07 UTC
Permalink
-----Original Message-----
Sent: 07 July 2009 14:46
Subject: Re: [Boost-users] unit test: apply same test case to different
fixtures
Post by Hicham Mouline
I have auto test cases that can take fixtures whose members they
access in a
Post by Hicham Mouline
uniform way.
Say struct F1... Fn
BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
{
//same code for all Fi
}
Is there a way to do this?
Regards,
1. Make Fi inherit from Fi+1.
template<typename T1,typename T2>
struct FixtureCollector : T1, T2 {};
You can now either implement above using variardic templates or implement macro
that will convert PP sequence into sequence of
For example
FixtureCollector<T1,FixtureCollector<T2,T3> >
BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}
Gennadiy
_______________________________________________
Boost-users mailing list
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hicham Mouline
2009-07-08 08:11:16 UTC
Permalink
-----Original Message-----
Sent: 07 July 2009 14:46
Subject: Re: [Boost-users] unit test: apply same test case to different
fixtures
Post by Hicham Mouline
I have auto test cases that can take fixtures whose members they
access in a
Post by Hicham Mouline
uniform way.
Say struct F1... Fn
BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
{
//same code for all Fi
}
Is there a way to do this?
Regards,
1. Make Fi inherit from Fi+1.
template<typename T1,typename T2>
struct FixtureCollector : T1, T2 {};
You can now either implement above using variardic templates or implement macro
that will convert PP sequence into sequence of
For example
FixtureCollector<T1,FixtureCollector<T2,T3> >
BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}
Gennadiy
Hi
Pressed Send too early.

The question is how to run the test case on T1 then on T2 then .... on Tn ,
on each one separately

Rds,
Steven Watanabe
2009-07-08 14:55:28 UTC
Permalink
AMDG
Post by Hicham Mouline
Post by Hicham Mouline
Post by Hicham Mouline
I have auto test cases that can take fixtures whose members they
access in a
Post by Hicham Mouline
uniform way.
Say struct F1... Fn
BOOST_FIXTURE_TEST_CASE( test_case1 , F1 ... Fn )
{
//same code for all Fi
}
Is there a way to do this?
Regards,
1. Make Fi inherit from Fi+1.
template<typename T1,typename T2>
struct FixtureCollector : T1, T2 {};
You can now either implement above using variardic templates or implement macro
that will convert PP sequence into sequence of
For example
FixtureCollector<T1,FixtureCollector<T2,T3> >
BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}
The question is how to run the test case on T1 then on T2 then .... on Tn ,
on each one separately
In other words, you'd like there to be a
BOOST_FIXTURE_TEST_CASE_TEMPLATE
to complement
BOOST_AUTO_TEST_CASE_TEMPLATE

In Christ,
Steven Watanabe
Gennadiy Rozental
2009-07-08 15:16:44 UTC
Permalink
Post by Steven Watanabe
Post by Hicham Mouline
Post by Gennadiy Rozental
BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}
The question is how to run the test case on T1 then on T2 then .... on Tn ,
on each one separately
I must say you left me a bit puzzled. What does it you are trying to do? Run the
same code against different fixtures? Kinda weird, don't you think?
Post by Steven Watanabe
In other words, you'd like there to be a
BOOST_FIXTURE_TEST_CASE_TEMPLATE
to complement
BOOST_AUTO_TEST_CASE_TEMPLATE
Not really, as far as I can tell.

Gennadiy
Hicham Mouline
2009-07-08 15:27:00 UTC
Permalink
-----Original Message-----
Sent: 08 July 2009 16:17
Subject: Re: [Boost-users] unit test: apply same test case to different
fixtures
Post by Steven Watanabe
Post by Hicham Mouline
Post by Gennadiy Rozental
BOOST_FIXTURE_TEST_CASE( test_case1 , FIXTURES((T1)(T2)(T3)) )
{
}
The question is how to run the test case on T1 then on T2 then ....
on Tn ,
Post by Steven Watanabe
Post by Hicham Mouline
on each one separately
I must say you left me a bit puzzled. What does it you are trying to do? Run the
same code against different fixtures? Kinda weird, don't you think?
Post by Steven Watanabe
In other words, you'd like there to be a
BOOST_FIXTURE_TEST_CASE_TEMPLATE
to complement
BOOST_AUTO_TEST_CASE_TEMPLATE
Not really, as far as I can tell.
Gennady
The different fixtures have the same member names, even if their types are
different
and the test case code uses those member with the same syntax... It's bit
like if the
fixture was a template argument...

regards,

Continue reading on narkive:
Loading...