рдЧреЛрд▓рдо рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЫрд╡рд┐ рдкрд╛рда рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИрд╕рд▓рд╛рдо, рд╣рдмреНрд░!
рд╣рд╛рдЙ рдЖрд░ рдпреВрдореИрдВ рдХреБрдЫ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВ рдХреНрдпреВрдЯреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣рдм рдореЗрдВ рдПрдХ рд╣рдм рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдХреНрдпреВрдЯреА рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдПред рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣рд╛рдВ рдореИрдВ рдЖрдкрдХреЛ Qt рдкрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ (рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╢рд░реНрдорд┐рдВрджрдЧреА рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпреВрдЯреА рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдЖрдЧреЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рд╕рдм рдХреБрдЫ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рд╕рдореВрд╣ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдирд╛ рд╣реИред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд
рдпрджрд┐ рдЖрдк рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреЛрдб рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдХреАрдбрд╝реЗ рд╣реИрдВред рдХреАрдбрд╝реЗ рдЦрд░рд╛рдм рд╣реИрдВред рдмрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╣реБрдд рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдпрд╣ рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдирд╣реАрдВ рд╣реИ) рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЗрд╕рдХрд╛
рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ ред рд▓реЗрдХрд┐рди рд╣рдо рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдкреВрд░рдХ, рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ ... рдФрд░ рд╣рд░ рдмрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдкрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЕрдкреНрд░рд┐рдп рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдмрд╣реБрдд рдмреБрджреНрдзрд┐рдорд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдРрд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреА рд╕реЛрдЪреА, рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЯреЗрд╕реНрдЯ рдХреЗ рдЗрд╕ рдкреЛрд╖рд┐рдд рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд░ рд╕рдХреЗред рдФрд░ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдореЙрдбрд▓ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг!
рдХреНрдпреВрдЯреА рдореЗрдВ рдпреВрдирд┐рдЯ-рдкрд░реАрдХреНрд╖рдг
рдФрд░ рдЕрдм рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗред Qt рдореЗрдВ, рдХреНрдпреВрдЯреЗрд╕реНрдЯрд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ (рдЯреЗрд╕реНрдЯрд▓рд┐рдм) рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:
- рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЪрд╛рдЗрд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред
- рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ qExec (..) рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
рдореИрдВ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рджреВрд╕рд░рд╛ рдмрджрд╕реВрд░рдд рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдФрд░ рдореИрдВ рдЕрдм рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рдХреНрдпреВрдЯреА рдПрдХ рд╢рд╛рдВрдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ - рдПрдХ рдкрд░реАрдХреНрд╖рдгред рдЗрд╕рд▓рд┐рдП, рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдмрд╛рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдХрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдирд┐рд╣рд┐рдд рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдмрд╛рдж рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП main.cpp рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдФрд░ test_classname.cpp рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдХреНрд░реЛ Q_TEST_MAIN (Test_ClassName) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдХрд╛рд░реНрдп
рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рддреБрд▓рдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╡рд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛? рд╣рдо
рдЗрдВрдЯ рдорд┐рди (рдЗрдВрдЯ, рдЗрдВрдЯ) рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рдФрд░
рдЗрдВрдЯ рдЕрдзрд┐рдХрддрдо (рдЗрдВрдЯ, рдЗрдВрдЯ) рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛, рдЬреЛ рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдЕрдЪреНрдЫрд╛ рдЪрд▓реЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА!
So. рдХреНрдпреВрдЯреА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдЬрд╛рдУред рд╣рдо рдХрдВрд╕реЛрд▓ Qt рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред .Pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ testlib рдФрд░ gui рдореЙрдбреНрдпреВрд▓ (GUI рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ) рдЬреЛрдбрд╝реЗрдВред рдЕрдм рдЖрдк рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдпрдж рдкрд░рдВрдкрд░рд╛рдУрдВ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ред рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рдХреНрд▓рд╛рд╕ рд▓рд┐рдЦреЗрдВрдЧреЗред рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ, рдореИрдВ рдЗрд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рд╕реБрдВрджрд░ рдЖрджрдореА рд╣реИ:
smart.h#ifndef SMART_H #define SMART_H #include <QObject> #include <QStringList> class Smart : public QObject { Q_OBJECT public: explicit Smart(QObject *parent, const QStringList& list); public slots: int max(int a, int b); int min(int a, int b); }; #endif // SMART_H
smart.cpp #include "smart.h" Smart::Smart(QObject *parent, const QStringList& list) : QObject(parent) { } int Smart::max(int a, int b) { if(a > b) return a; return b; } int Smart::min(int a, int b) { if(a < b) return a; return b; }
рдкрд░реАрдХреНрд╖рдг QObject * рдХрдХреНрд╖рд╛рдПрдВ
рдХреНрд▓рд╛рд╕ рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ "рд╕реНрдорд╛рд░реНрдЯ" рд╡рд░реНрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ Test_Smart рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
test_smart.h #ifndef TEST_SMART_H #define TEST_SMART_H #include <QObject> class Test_Smart : public QObject { Q_OBJECT public: explicit Test_Smart(QObject *parent = 0); private slots: // void max(); // int max(int, int) }; #endif // TEST_SMART_H
test_smart.cpp #include <QTest> #include "test_smart.h" #include "smart.h" Test_Smart::Test_Smart(QObject *parent) : QObject(parent) { } void Test_Smart::max() { Smart a; QCOMPARE(a.max(1, 0), 1); QCOMPARE(a.max(-1, 1), 1); QCOMPARE(a.max(4, 8), 8); QCOMPARE(a.max(0, 0), 0); QCOMPARE(a.max(1, 1), 1); QCOMPARE(a.max(-10,-5), -5); }
рд╣рдо рдереЛрдбрд╝рд╛ рдЦрддреНрдо рдирд╣реАрдВ рд╣реБрдП, рд▓реЗрдХрд┐рди рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕рдордп рд╣реИред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдЪрд▓рд╛рдиреЗ рд╣реИрдВред
main.cpp #include <QApplication> #include <QTest> #include <iostream> #include <cstdlib> #include <cstdio> #include "test_smart.h" using namespace std; int main(int argc, char *argv[]) { freopen("testing.log", "w", stdout); QApplication a(argc, argv); QTest::qExec(new Test_Smart, argc, argv); return 0; }
рд╕рдВрдХрд▓рди ...
testing.log ********* Start testing of Test_Smart ********* Config: Using QTest library 4.8.1, Qt 4.8.1 PASS : Test_Smart::initTestCase() PASS : Test_Smart::max() PASS : Test_Smart::cleanupTestCase() Totals: 3 passed, 0 failed, 0 skipped ********* Finished testing of Test_Smart *********
рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ!
рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рддрдХрдиреАрдХ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдмрд╕ рдХрд╣рддрд╛ рд╣реВрдВ - "
рдЯреИрдмрд▓реЗрдЯ "ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╕рд╛рд░ рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ
рд╢реВрдиреНрдп рдЕрдзрд┐рдХрддрдо () ? рд╡рд╣рд╛рдВ рд╣рдордиреЗ рдХрдИ рдмрд╛рд░ рдПрдХ рд╣реА рдХреЛрдб рджреЛрд╣рд░рд╛рдпрд╛ (рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, Qt рдПрдХ "рдкреНрд▓реЗрдЯ" рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╣рдо рд╡рд┐рдзрд┐ method_data () рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╣рдо рдХреБрдЫ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ QFETCH () рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдпрд╣ рд╕рдм рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!
рдЕрдм рд╣рдорд╛рд░реЗ "рдЯреИрдмрд▓реЗрдЯ" рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ
test_smart.cpp рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:
void Test_Smart::min_data() { QTest::addColumn<int>("first"); QTest::addColumn<int>("second"); QTest::addColumn<int>("result"); QTest::newRow("min_data_1") << 1 << 0 << 0; QTest::newRow("min_data_2") << -1 << 1 << -1; QTest::newRow("min_data_3") << 4 << 8 << 4; QTest::newRow("min_data_4") << 0 << 0 << 0; QTest::newRow("min_data_5") << 1 << 1 << 1; QTest::newRow("min_data_6") << -10 << -5 << -10; } void Test_Smart::min() { Smart a; QFETCH(int, first); QFETCH(int, second); QFETCH(int, result); QCOMPARE(a.min(first, second), result); }
рдЕрдм рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред рд╣рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдорд┐рд▓рддрд╛ рд╣реИред
testing.log ********* Start testing of Test_Smart ********* Config: Using QTest library 4.8.1, Qt 4.8.1 PASS : Test_Smart::initTestCase() PASS : Test_Smart::max() PASS : Test_Smart::min() PASS : Test_Smart::cleanupTestCase() Totals: 4 passed, 0 failed, 0 skipped ********* Finished testing of Test_Smart *********
рдЕрдм рд╣рдо рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди :: рдорд┐рдирдЯ (..) рдкрд░рд┐рд╡рд░реНрддрди <рд╕реЗ>ред
testing.log ********* Start testing of Test_Smart ********* Config: Using QTest library 4.8.1, Qt 4.8.1 PASS : Test_Smart::initTestCase() PASS : Test_Smart::max() FAIL! : Test_Smart::min(data_1) Compared values are not the same Actual (a.min(first, second)): 1 Expected (result): 0 Loc: [test_smart.cpp(41)] FAIL! : Test_Smart::min(data_1) Compared values are not the same Actual (a.min(first, second)): 1 Expected (result): -1 Loc: [test_smart.cpp(41)] FAIL! : Test_Smart::min(data_1) Compared values are not the same Actual (a.min(first, second)): 8 Expected (result): 4 Loc: [test_smart.cpp(41)] FAIL! : Test_Smart::min(data_1) Compared values are not the same Actual (a.min(first, second)): -5 Expected (result): -10 Loc: [test_smart.cpp(41)] PASS : Test_Smart::cleanupTestCase() Totals: 3 passed, 4 failed, 0 skipped ********* Finished testing of Test_Smart *********
рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ)ред
GUI рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдХрднреА-рдХрднреА, рдФрд░ рдХрднреА-рдХрднреА рдмрд╣реБрдд рдмрд╛рд░, рд╣рдореЗрдВ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпреВрдЯреЗрд╕реНрдЯрд▓реАрдм рдореЗрдВ, рдпрд╣ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЗрдП QLineEdit рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
рдпрд╣ рд╣рдорд╛рд░реЗ
test_qlineedit.h рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
#ifndef TEST_QLINEEDIT_H #define TEST_QLINEEDIT_H #include <QObject> class Test_QLineEdit : public QObject { Q_OBJECT private slots: // void edit(); }; #endif // TEST_QLINEEDIT_H
рдФрд░ рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛
test_qlineedit.cpp рднреА рд╣реИ:
#include <QtTest> #include <QtGui> #include "test_qlineedit.h" void Test_QLineEdit::edit() { QLineEdit a; QTest::keyClicks(&a, "abCDEf123-"); QCOMPARE(a.text(), QString("abCDEf123-")); QVERIFY(a.isModified()); }
рдпрд╣
main.cpp рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:
#include <QApplication> #include <QTest> #include <iostream> #include <cstdlib> #include <cstdio> #include "test_smart.h" #include "test_qlineedit.h" using namespace std; int main(int argc, char *argv[]) { freopen("testing.log", "w", stdout); QApplication a(argc, argv); QTest::qExec(new Test_Smart, argc, argv); cout << endl; QTest::qExec(new Test_QLineEdit, argc, argv); return 0; }
рдЕрдм рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
********* Start testing of Test_Smart ********* Config: Using QTest library 4.8.1, Qt 4.8.1 PASS : Test_Smart::initTestCase() PASS : Test_Smart::max() PASS : Test_Smart::min() PASS : Test_Smart::cleanupTestCase() Totals: 4 passed, 0 failed, 0 skipped ********* Finished testing of Test_Smart ********* ********* Start testing of Test_QLineEdit ********* Config: Using QTest library 4.8.1, Qt 4.8.1 PASS : Test_QLineEdit::initTestCase() PASS : Test_QLineEdit::edit() PASS : Test_QLineEdit::cleanupTestCase() Totals: 3 passed, 0 failed, 0 skipped ********* Finished testing of Test_QLineEdit *********
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ GUI рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВред рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ QLineEdit рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ))ред
рдкрд░реАрдХреНрд╖рдг рддрд░реНрдХ
рд╡рд┐рдХрд▓реНрдк | рд╡реНрдпрд╛рдЦреНрдпрд╛ |
---|
-рдлрд┐рд▓реНрдо рдХрд╛ рдирд╛рдо | рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо |
-silent | рдХреЗрд╡рд▓ рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рддрдХ рд╕рдВрджреЗрд╢ рд╕реАрдорд┐рдд рдХрд░реЗрдВ |
-v1 | рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ |
-v2 | QCOMPARE рдФрд░ QVERIFY рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ -v1 рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ |
-vs | рдкреНрд░рддреНрдпреЗрдХ рднреЗрдЬреЗ рдЧрдП рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕реНрд▓реЙрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ |
-xml | XML рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ |
-рдПрд╡реЗрдВрдЯреЗрдбреЗрд▓рдп рдПрдордПрд╕ | рдкрд░реАрдХреНрд╖рдг рд░реЛрдХрдирд╛ рдФрд░ рдПрдордПрд╕ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЬреАрдпреВрдЖрдИ рддрддреНрд╡реЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред |
рдЖрдЬ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рдмрддрд╛рдпрд╛ рд╣реИ, рд╡рд╣ рдЖрдкрдХреЗ Qt рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ рдЖрдкрдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓реЗрдЦ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ - рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░рд╛ рдЖрдЦрд┐рд░реА рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рдФрд░ рдЖрдк рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХреЛрдб;)