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