C++ Logo

std-proposals

Advanced search

Re: Friend namespace

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Sun, 6 Dec 2020 16:59:20 +0200
On Sun, 6 Dec 2020 at 16:31, Arthur O'Dwyer via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> On Sun, Dec 6, 2020 at 4:24 AM Peter C++ via Std-Proposals <std-proposals_at_[hidden]> wrote:
>>
>> To start with, you should not test private stuff. It is private, so it might change. Binding tests to the private parts makes them harder to change, because of the tests, that should make software easier to refactor and change.
>
>
> I agree with Peter here.
> "Refactoring for testability" is definitely a thing. This generally involves at least two parts, and maybe more:
> (1) Make sure all your dependencies are injected
> (2) Make sure all your functionality is exposed

Well,
1) sometimes you do want to test your implementation details, i.e...
your.. ..implementation, *gasp*
2) the cost of recfactoring-for-testability may overshadow its benefits
3) so when facing that situation, punch the conditional friend
peephole open and use it in your tests
4) treat all the advice in this thread, including this one,
judiciously, and make engineering decisions
that suit your problem domain, instead of following dogma
5) profit!

Received on 2020-12-06 08:59:33