我有這樣的代碼:公共方法單位測試返回指向私有成員
class Foo
{
private :
int m_nValue;
public :
explicit Foo(const int nValue) :
m_nValue(nValue)
{
}
const int* Pointer() const
{
return &m_nValue;
}
};
void Test()
{
Foo obj(3);
// I want to do something like this.
//Assert::AreEqual(&obj.m_nValue, obj.Pointer());
}
我想測試Pointer()
方法返回私有字段m_nValue
的地址。有人可以幫助解決這種情況的一些很好的解決方案。我可以讓測試課/功能成爲朋友,但我真的不喜歡它。
也許這不是應該測試的方法。但據我所知,所有公共方法都應該進行測試。
測試是用C++編寫的C++代碼在2012年MSVS
您可以調用'Pointer()'兩次並比較結果。這只是涵蓋了您可以從此設計中獲得的所有(定義的)行爲。 – Beta 2013-03-09 23:27:34