Извините за плохой заголовок, я понятия не имею, как назвать этот вопрос. Пожалуйста, отредактируйте и сделайте это лучше.Qt Test QVERIFY2() string и int concatenation
Я пишу тест с использованием оболочки Qt, и я пытаюсь написать полезный вывод, который будет использоваться макросом QVERIFY2()
. Все из следующих утверждений не удалось собрать примерно с тем же сообщением об ошибке:
QVERIFY2(spy.count() == 1, "Emitted signal pathChanged() was emitted " + spy.count() + " times instead of 1 time");
QVERIFY2(spy.count() == 1, QString("Emitted signal pathChanged() was emitted ") + QString(spy.count()) + QString(" times instead of 1 time"));
QVERIFY2(spy.count() == 1, "Emitted signal pathChanged() was emitted " + QString(spy.count()) + " times instead of 1 time");
Сообщение об ошибке для последней попытки был:
PathTester.cxx: In member function ‘void PathTester::testReservePath()’:
PathTester.cxx:241:128: error: cannot convert ‘QString’ to ‘const char*’ for argument ‘3’ to ‘bool QTest::qVerify(bool, const char*, const char*, const char*, int)’
PathTester.cxx:241:243: error: cannot convert ‘QString’ to ‘const char*’ for argument ‘3’ to ‘bool QTest::qVerify(bool, const char*, const char*, const char*, int)’
Что я делаю неправильно? Как я могу написать это правильно?
Он хочет const char *, а не QString ... – Huy
Выход, который вы вставили, выглядит очень подозрительно - а именно, открывающий круглый кронштейн 'FAIL! : PathTester :: testPath() '('<- здесь. Действительно ли это так? Кроме того, что означает' expectedNum' в этой точке (выгружать его непосредственно перед проверкой), и почему это не так? сам? – peppe
@peppe Вы правы, это было подозрительно. Это '(' не было в коде (должно быть, это было непреднамеренно?) К счастью, когда я вернулся, чтобы посмотреть на оригинал, я понял, что читаю вывод из копии/вставленной строки, которая не была обновлена с помощью 'QString :: number()' \ * sigh \ *. Похоже, это был аппаратный сбой между стулом и клавиатурой :-) Это один из тех дней. .. Я удалил бескорыстность из вопроса. Еще раз спасибо за вашу помощь –