Zmień realizacja metodę set_enable
użyć metody pomocnika, na przykład:
void set_enable(bool enabled = true) { set_enable_impl(enabled); }
Teraz w klasie MockA
utworzyć mock metodę set_enable_impl
:
MOCK_METHOD1(set_enable_impl, void(bool));
Następnie w swoim kodzie produkcyjnym po prostu używaj set_enable
, tak jak na pierwszym miejscu, podczas gdy w testach masz ok. n zestaw oczekiwania dotyczące metody set_enable_impl
:
MockA mockA;
EXPECT_CALL(mockA, set_enable_impl(_))...;
Alternatywą byłoby przeciążenia sposób poprzez wersji jednej i wartość zero. Od Ciebie zależy, która metoda będzie skuteczniejsza w Twoim przypadku.
Byłoby lepiej, gdyby nie było zmiany oryginalnego kodu tylko w celu testowym. Przy okazji przyjmuję twoją odpowiedź jako najlepszą, jeśli nie będzie innej drogi. – nyarlathotep108
@ nyarlathotep108 Istnieje alternatywa, ale wymaga to również zmiany oryginalnego kodu. Zobacz moją zaktualizowaną odpowiedź. –
@ nyarlathotep108 Rozważ zaznaczenie odpowiedzi jako zaakceptowanej, jeśli nie znalazłeś lepszego rozwiązania, lub jeśli tak, to podziel się nią z nami. –