У меня есть 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, поэтому ниже QCOMPARE, использующий QString для отображения значений)
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
Очевидно, за этим стоит другой код, но я не публикую его сейчас, потому что я не думаю, что это особенно актуально, но спрашиваю, есть ли что-то, что вы хотите знать, насколько я понимаю, этот тест должен пройти, но, возможно, есть кое-что, чего я не знаю о сравнении строк (что-то вроде того, как сравнение удваивается, если вы не используете нечеткое сравнение)
заранее спасибо
Ваша фактическая строка имеет символ новой строки. Следовательно, сравнение не удается.
Других решений пока нет …