为结果行实现模拟的测试用例

时间:2019-12-06 08:25:40

标签: c++ unit-testing googletest

我已经实现了一个名为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传递给它来运行“正常”工作函数。

这是一个好的解决方案吗?有什么想法吗?

0 个答案:

没有答案