【问题标题】:Why doesn't QTest allow const char* as a test data format?为什么 QTest 不允许 const char* 作为测试数据格式?
【发布时间】:2016-06-14 09:06:01
【问题描述】:

所以我正在使用带有"data driven" approach 的Qt 的QTest 框架。我可以像这样定义测试数据:

Q_DECLARE_METATYPE (const int*);

void MyTest::testSomething_data ()
{
    QTest::addColumn<const int*> ("rawIntegerData");
    // ...
}

现在我尝试用 const char* 而不是 const int* 做同样的事情...

Q_DECLARE_METATYPE (const char*);

void MyTest::testSomething_data ()
{
    QTest::addColumn<const char*> ("rawTextData");
    // ...
}

...我得到一个失败的静态断言:

const char* is not allowed as a test data format.

原来 QTest::addColumn 明确拒绝 qtestcase.h 中的 const char*。

我意识到QByteArray 可能是一个可行的选择,但我想知道:这里不允许const char * 的原因是什么?

【问题讨论】:

    标签: c++ qt unit-testing


    【解决方案1】:

    这是the commit 更改的消息:

    阐明在测试中使用 const char* 作为 TestData 类型的断言。

    目前在 QTest::addColumn 中用作数据类型的所有 C 样式字符串 将在运行时断言,例如:“类型为 'const 的预期数据 char *',得到了带有标签“blah”的数据元素 0 的“QString”。这个 patch 明确表示不允许使用 C 风格的字符串。

    Code Review here中有一些cmets

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 2021-11-01
      • 1970-01-01
      • 2010-12-15
      • 2016-10-25
      • 2011-10-09
      • 1970-01-01
      • 2018-02-05
      相关资源
      最近更新 更多