我有一個UnitTest ++測試類,它允許我測試一個類正確解析某些字符串。在運行測試之前,我創建了一個包含多個字符串的燈具,以通過循環中的各種函數進行測試。它似乎工作正常,但問題是,如果出現錯誤,UnitTest ++將始終給我相同的錯誤行,所以我不知道究竟是哪個字符串導致問題。在UnitTest ++中顯示自定義失敗消息?
例如,它會輸出:
"[UnitTest++] ..\trunk\tests\Test_ChineseUtil.cpp(46): error: Failure in ParsePinyinT: ChineseUtil::parsePinyinT(pinyinT) == pinyinN"
但是,這並沒有告訴我這串沒有被正確解析。
所以我想在測試失敗的時候設置一些自定義的錯誤信息(在這種情況下,我會給它在我的數組中的第一項)。基本上,我需要類似於:
CHECK(theTest, "my error message")
UnitTest ++中是否存在這樣的函數?或者,也許有更好的方法來做我想做的事情?
的信息,這裏是我的類的代碼:
#include <third_party/unittest++/UnitTest++.h>
#include <Application.h>
#include <ChineseUtil.h>
using namespace hanzi;
namespace chineseUtilTests {
class PinyinFixture {
public:
PinyinFixture() {
ChineseUtil::initialize();
testData << "third tone" << QString::fromUtf8("wo3") << QString::fromUtf8("wǒ");
testData << "no tone" << QString::fromUtf8("wo") << QString::fromUtf8("wo");
testData << "second tone" << QString::fromUtf8("guo2") << QString::fromUtf8("guó");
testData << "first tone" << QString::fromUtf8("jia1") << QString::fromUtf8("jiā");
testData << "fifth tone" << QString::fromUtf8("jia5") << QString::fromUtf8("jia");
testData << "two dots" << QString::fromUtf8("nu:") << QString::fromUtf8("nü");
testData << "two dots and tone" << QString::fromUtf8("nu:3") << QString::fromUtf8("nǚ");
}
~PinyinFixture() {
}
QStringList testData;
};
TEST_FIXTURE(PinyinFixture, ParsePinyinN) {
for (int i = 0; i < testData.size(); i++) {
QString pinyinN = testData[i][1];
QString pinyinT = testData[i][2];
CHECK(ChineseUtil::parsePinyinN(pinyinN) == pinyinT);
}
}
TEST_FIXTURE(PinyinFixture, ParsePinyinT) {
for (int i = 0; i < testData.size(); i++) {
QString pinyinN = testData[i][1];
QString pinyinT = testData[i][2];
CHECK(ChineseUtil::parsePinyinT(pinyinT) == pinyinN);
}
}
} // chineseUtilTests