と呼ばれる C++ クラスで (Boost 単体テスト フレームワークを使用して) 単体テストを実行しようとしていますVariableImpl
。詳細はこちら。
class Variable
{
public:
void UpdateStatistics (void) {
// compute mean based on m_val and update m_mean;
OtherClass::SendData (m_mean);
m_val.clear ();
}
virtual void RecordData (double) = 0;
protected:
std::vector<double> m_val;
private:
double m_mean;
};
class VariableImpl : public Variable
{
public:
virtual void RecordData (double d) {
// put data in m_val
}
};
私の質問は、平均が正しく計算されていることを確認するにはどうすればよいですか? m_mean
1)は保護され、2)UpdateStatistics
別のクラスのメソッドを呼び出してからベクトルをクリアすることに注意してください。
私が見ることができる唯一の方法は、ゲッター (たとえば、GetMean
) を追加することですが、私はこの解決策がまったく好きではなく、最もエレガントだとも思いません。
どうすればいいですか?
また、プライベート変数ではなくプライベート メソッドをテストする場合はどうすればよいでしょうか?