单元测试在两个相等的Qstrings上失败(一个从文件中读取)?

时间:2014-02-03 14:20:48

标签: qt unit-testing qt4

我正在尝试比较两个应该是相同的字符串。然而,测试失败了。

我正在测试router.setForwarding(true)方法是否正确设置了文件。

以下是测试的代码。

void router_test::testSetForwarding_true()
{
    QFile myfile("/proc/sys/net/ipv4/ip_forward");
    myfile.open(QIODevice::ReadOnly | QIODevice::Text);        
    router->setForwarding(true);   
    QString forward = QString(myfile.readAll());

    QCOMPARE(QString("1"),forward);
}

结果我得到了:

   FAIL!  : router_test::testSetForwarding_true() Compared values are not the same
   Actual (QString("1")): 1
   Expected (forward): 1

为什么他们不相同?

1 个答案:

答案 0 :(得分:2)

正如您可以从输出中收集的那样,您已经互换了实际值和期望值。您还将新行终止的输出与没有换行的输出进行比较。

这应该有效:

QCOMPARE(forward, QString("1\n"));

QCOMPARE(forward[0], QChar('1'));