TNB Library
TnbTinyTestCase.h
[詳解]
1#pragma once
11#include "TnbStr.h"
12
13
14
15//TNB Library
16namespace TNB
17{
18
19
20
21#ifdef TC_TRUE
22 #error T-TestCase と同時には使用できません。
23#endif
24
25
26
27#ifndef _TnbDOXYGEN //Document作成用シンボル
28#define __TTC3(XX,P1,P2,P3) do { char* _b=new char[1024]; TNB::STRLIB::PrintF(_b,1024,XX,P1,P2,P3); ::OutputDebugStringA(_b); delete[] _b; } while ( false )
29#endif
30
36#define TC_TRUE(X) { bool _R=X; if ( _R ) {::OutputDebugStringA(" ○ " #X ";\n"); }\
37 else { ::OutputDebugStringA(" × " #X ";\n"); ::Sleep(10); __TTC3("%s(%d): %s\n", __FILE__, __LINE__, "[" #X "]でアサートしました。"); \
38 ASSERT1(_R, NULL, "%s", "[" #X "]\n\n上記箇所でアサートしました。"); } m_TcTrue(_R); }
39
45#define TC_VOID(X) ::OutputDebugString(_T(" ") _T(#X) _T(";\n")); X;
46
47
48
63{
64public:
65
71 bool Run(void)
72 {
73 bool r = true;
74 r &= m_Test(&CTinyTestCase::Test1);
75 r &= m_Test(&CTinyTestCase::Test2);
76 r &= m_Test(&CTinyTestCase::Test3);
77 r &= m_Test(&CTinyTestCase::Test4);
78 r &= m_Test(&CTinyTestCase::Test5);
79 return r;
80 }
81
82protected:
84 virtual void Test1(void) = 0;
86 virtual void Test2(void) {}
88 virtual void Test3(void) {}
90 virtual void Test4(void) {}
92 virtual void Test5(void) {}
93
98 void TC_CAPTION_CASE(LPCSTR lpsz)
99 {
100 ::OutputDebugString(_T("//-----------------------\n"));
101 ::OutputDebugString(_T("//") + CStr(lpsz) + _T("\n"));
102 }
107 void TC_CAPTION_TEST(LPCSTR lpsz)
108 {
109 ::OutputDebugString(CStr(_T(" //")) + lpsz + _T("\n"));
110 }
116 void m_TcTrue(bool r)
117 {
118 m_totalCount++;
119 if ( r )
120 {
121 m_trueCount++;
122 }
123 }
124private:
125 typedef void (CTinyTestCase::*P_Test)(void);
126 bool m_Test(P_Test t)
127 {
128 m_totalCount = 0;
129 m_trueCount = 0;
130 (this->*t)();
131 if ( m_totalCount != 0 )
132 {
133 ::OutputDebugString(CStr::Fmt(_T("★★ Total = %d NG = %d ★★\n"), m_totalCount, m_totalCount - m_trueCount));
134 }
135 return m_totalCount == m_trueCount;
136 }
137 DWORD m_totalCount;
138 DWORD m_trueCount;
139};
140
141
142
143}; // TNB
文字列管理関係のヘッダ
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
Definition: TnbStr.h:1206
簡易テストケースフレームワーク.
virtual void Test2(void)
テスト2
virtual void Test4(void)
テスト4
void TC_CAPTION_CASE(LPCSTR lpsz)
[表示] テストケース説明
virtual void Test3(void)
テスト3
virtual void Test5(void)
テスト5
void TC_CAPTION_TEST(LPCSTR lpsz)
[表示] テスト説明
void m_TcTrue(bool r)
[評価] 評価
bool Run(void)
[実行] テスト開始.
virtual void Test1(void)=0
テスト1
TNB::CStrT< TCHAR > CStr
文字列クラス
Definition: TnbStr.h:1785
TNB Library
Definition: TnbDoxyTitle.txt:2