我正在尝试比较两个应该是相同的字符串。然而,测试失败了。
我正在测试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
为什么他们不相同?
答案 0 :(得分:2)
正如您可以从输出中收集的那样,您已经互换了实际值和期望值。您还将新行终止的输出与没有换行的输出进行比较。
这应该有效:
QCOMPARE(forward, QString("1\n"));
或
QCOMPARE(forward[0], QChar('1'));