我已经实现了一个名为ResultRow
的接口。该接口具有一些虚拟功能,可以通过传递字段名称(getValue(const std::string& field) const
)来获取值:
class ResultRow
{
public:
virtual ~ResultRow();
virtual std::string operator[] (const std::string& field) const = 0;
virtual std::string getValue(const std::string& field) const = 0;
virtual int getValueInt(const std::string& field) const = 0;
};
此接口的一个具体类是ResultRowDb,它充当pqxx :: tuple的包装器。 getValue(const std :: string&field)调用pqxx :: tuple [field]。
该接口的实现是为了对gTest使用模拟的ResultRow。
首先,我将进行一些基本的模拟测试,例如:
MockedResultRow....WillOnce(Return(valueFieldA)).WillOnce(Return(valueFieldB))
,依此类推。
但是我不确定如何实现进一步的测试用例。 另外,我想检查字段值的正确选择。这意味着,检查字段名称是否存在于结果行中,依此类推...
我的想法是实现两个不同的测试用例:
第一个是上面的模拟测试,第二个是ResultRow
的新具体类,用于测试目的ResultRowTest
。
我将使用public
函数设置期望的键值对,并通过将ResultRowTest
传递给它来运行“正常”工作函数。
这是一个好的解决方案吗?有什么想法吗?