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'));