|
Boost Users : |
Subject: Re: [Boost-users] [test] testing protected/private methods out oftestsuits
From: spiderlama (spiderlama_at_[hidden])
Date: 2008-09-23 19:41:21
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_at_[hidden]> 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_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net