4
我確實需要測試一個C++類的私有成員方法。可以通過在單元測試中定義我自己的PRIVATE宏來讓私有成員公開嗎?
由於它是私有方法,我不想將其更改爲protected,所以我無法通過創建子類和使用聲明添加來公開它。
所以,如果我定義一個宏PRIVATE來取代私人關鍵字。這是解決這個問題的好方法嗎?
#if __UNITTEST__
#define PRIVATE public
#else
#define PRIVATE private
#endif
class A {
PRIVATE:
void f();
};
你在測試什麼?例如Qt提供了一個find_child方法,您可以使用它來訪問私有GUI元素。 – 2014-12-04 20:26:20
我認爲應該沒問題......但你爲什麼要這樣做?這是一個奇怪的代碼。使用系統定義關鍵字。這對新來的人來說更難以接受。無論如何試試你的運氣,對我來說它應該工作得很好 – 2014-12-04 20:29:47