What about using a friend test fixture class to allow data access. See example below:

AClass.hpp:

namespace Test
{
    class AClass;
}

class AClass
{
    friend class Test::AClass;
    ...
};

Test/AClass.hpp:

#include "AClass.hpp"

namespace Test
{
    class AClass
    {
        // test cases referencing private ::AClass data
    };
}

But then derived classes will have to re-test the protected functions. Ideally there should be minimal protected functions.

Cheers,
spider.

On Tue, Sep 23, 2008 at 7:10 PM, Patrick Loney <Patrick.Loney@interactivets.com> wrote:
>You mean by deriving my class_to_test with derived_class and wraping
the >protected class_to_test::method_to_test by a public method in
>derived_class?

No, I just meant testing the public members with all the parameters
required to fully test the private/protected methods as they are used by
your class. If someone writes a derived class that uses one of your
protected methods in a different way then they need to write test cases
to ensure that the method is producing the results they want. I don't
think your test cases can anticipate how your protected methods will be
used by derived classes.

On the other hand this is a bit simplistic but I think it would be
better than #defining protected to public?

Class classToTest
{
Public:
#ifdef UNIT_TESTING
       testingAccessToMethodToTest() { methodToTest() ) }
#endif UNIT_TESTING
Protected:
       methodToTest() {}
}

******************************************************************************

"This message and any attachments are solely for the intended recipient and may contain confidential and privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you."

Interactive Transaction Solutions Ltd (2473364 England)

Registered Office:
Systems House,
Station Approach
Emsworth PO10 7PW

**********************************************************************

Ce message électronique contient des informations confidentielles à l'usage unique des destinataires indiqués, personnes physiques ou morales. Si vous n'êtes pas le destinataire voulu, toute divulgation, copie, ou diffusion ou toute autre utilisation de ces informations, est interdite. Si vous avez reçu ce message électronique par erreur, nous vous remercions d'en avertir son expéditeur immédiatement par email et de détruire ce message ainsi que les éléments attachés.

Interactive transaction Solutions SAS- France (RCS Pontoise : 489 397 877)

Siège social :
Parc Saint Christophe,
10, Avenue de l'Entreprise
95865 Cergy-Pontoise Cedex

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users