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