tester.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <iostream>
00027 using namespace std;
00028
00029 #include <qmetaobject.h>
00030
00031 #include "tester.h"
00032
00033 namespace KUnitTest
00034 {
00035 SlotTester::SlotTester(const char *name) : Tester(name)
00036 {
00037 m_resultsList.setAutoDelete(true);
00038 m_total = m_results;
00039 }
00040
00041 void SlotTester::invokeMember(const QString &str)
00042 {
00043 QString slotname = QString::number(QSLOT_CODE) + str;
00044 connect(this, SIGNAL(invoke()), this, slotname.ascii());
00045 emit invoke();
00046 disconnect(this, SIGNAL(invoke()), this, slotname.ascii());
00047 }
00048
00049 void SlotTester::allTests()
00050 {
00051 QStrList allSlots = metaObject()->slotNames();
00052
00053 if ( allSlots.contains("setUp()") > 0 ) invokeMember("setUp()");
00054
00055 for ( char *sl = allSlots.first(); sl; sl = allSlots.next() )
00056 {
00057 QString str = sl;
00058
00059 if ( str.startsWith("test") )
00060 {
00061 m_results = results(sl);
00062 m_results->clear();
00063
00064 cout << "KUnitTest_Debug_BeginSlot[" << sl << "]" << endl;
00065 invokeMember(str);
00066 cout << "KUnitTest_Debug_EndSlot[" << sl << "]" << endl;
00067 }
00068 }
00069
00070 if ( allSlots.contains("tearDown()") > 0 ) invokeMember("tearDown()");
00071
00072 m_total->clear();
00073 }
00074
00075 TestResults *SlotTester::results(const char *sl)
00076 {
00077 if ( m_resultsList.find(sl) == 0L ) m_resultsList.insert(sl, new TestResults());
00078
00079 return m_resultsList[sl];
00080 }
00081 }
00082
00083 QTextStream& operator<<( QTextStream& str, const QRect& r ) {
00084 str << "[" << r.x() << "," << r.y() << " - " << r.width() << "x" << r.height() << "]";
00085 return str;
00086 }
00087
00088 QTextStream& operator<<( QTextStream& str, const QPoint& r ) {
00089 str << "(" << r.x() << "," << r.y() << ")";
00090 return str;
00091 }
00092
00093 QTextStream& operator<<( QTextStream& str, const QSize& r ) {
00094 str << "[" << r.width() << "x" << r.height() << "]";
00095 return str;
00096 }
00097
00098 #include "tester.moc"
00099
|