Qt 两个相等的Q字符串(一个从文件中读取)的单元测试失败?

Qt 两个相等的Q字符串(一个从文件中读取)的单元测试失败?,qt,unit-testing,qt4,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-&

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

我正在测试通过
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

为什么它们不相等?

从输出中可以看出,实际值和期望值是相互交换的。您还将比较以换行符终止的输出与没有换行符的输出

这应该起作用:

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


确定ip\u转发文件的结尾没有\n?请使用
forward.trimmed()
。顺便说一句:
QCOMPARE
参数的顺序应该相反:)(日志应该有正确的描述)。
QCOMPARE(forward[0], QChar('1'));