1

我有一个比较两个字符串值的 QtTest:

 // This definitely returns "5/6" 
 std::string actual_value = simple(actual);

 // Sets a string to the expected value
 std::string expected_value = "5/6";

然后是 QCOMPARE:

QCOMPARE(QString(actual_value.c_str()), QString(expected_value.c_str()));

/* I'm Aware this could just be the code below (but this doesnt print values to
console so i can check they are actually the same)  */
QCOMPARE(actual_value, expected_value)

我得到了错误:(我把两者都发布了,所以很明显它不仅仅是 QString 失败了,所以下面是使用 QString 来显示值的 QCOMPARE)

FAIL!  : TestFraction::testFraction() Compared values are not the same
Actual   (QString(actual_value.c_str())): 5/6

Expected (QString(expected_value.c_str())): 5/6

这是正常的 QCOMPARE 错误消息:

FAIL!  : TestFraction::testFraction() Compared values are not the same

这背后显然有其他代码,但我现在没有发布它,因为我认为它不是特别相关,但询问是否有你想知道的东西,据我所知,这个测试应该通过,但也许有一些我不知道比较字符串的东西(除非您使用模糊比较,否则比较双打如何失败)

提前致谢

4

1 回答 1

6

您的实际字符串有一个换行符。因此比较失败。

于 2013-04-03T08:13:37.333 回答