Я очень новичок в модульном тестировании, и я немного смущен.
Я пытаюсь выполнить модульное тестирование (используя платформу тестирования модулей 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
}
};
Мой вопрос в том, как проверить, правильно ли вычисляется среднее значение? Обратите внимание, что 1) m_mean
защищен и 2) UpdateStatistics
вызывает метод другого класса, а затем очищает вектор.
Единственный способ, которым я могу видеть, - добавить геттер (например, GetMean
), но мне совсем не нравится это решение, и я не думаю, что это самый элегантный.
Как мне сделать?
И что мне делать, если я должен проверить частный метод вместо частной переменной?
ТИА,
Jir