UnitTestGUITestRunner.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:4k
源码类别:

Email服务器

开发平台:

Delphi

  1. { $Id: UnitTestGUITestRunner.pas,v 1.16 2006/07/19 02:52:55 judc Exp $ }
  2. {: DUnit: An XTreme testing framework for Delphi programs.
  3.    @author  The DUnit Group.
  4.    @version $Revision: 1.16 $
  5. }
  6. (*
  7.  * The contents of this file are subject to the Mozilla Public
  8.  * License Version 1.1 (the "License"); you may not use this file
  9.  * except in compliance with the License. You may obtain a copy of
  10.  * the License at http://www.mozilla.org/MPL/
  11.  *
  12.  * Software distributed under the License is distributed on an "AS
  13.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  14.  * implied. See the License for the specific language governing
  15.  * rights and limitations under the License.
  16.  *
  17.  * The Original Code is DUnit.
  18.  *
  19.  * The Initial Developers of the Original Code are Kent Beck, Erich Gamma,
  20.  * and Juancarlo A馿z.
  21.  * Portions created The Initial Developers are Copyright (C) 1999-2000.
  22.  * Portions created by The DUnit Group are Copyright (C) 2000-2003.
  23.  * All rights reserved.
  24.  *
  25.  * Contributor(s):
  26.  * Kent Beck <kentbeck@csi.com>
  27.  * Erich Gamma <Erich_Gamma@oti.com>
  28.  * Juanco A馿z <juanco@users.sourceforge.net>
  29.  * Chris Morris <chrismo@users.sourceforge.net>
  30.  * Jeff Moore <JeffMoore@users.sourceforge.net>
  31.  * Uberto Barbini <uberto@usa.net>
  32.  *
  33.  * The DUnit group at SourceForge <http://dunit.sourceforge.net>
  34.  *
  35.  *)
  36. {$IFDEF LINUX}
  37. {$DEFINE DUNIT_CLX}
  38. {$ENDIF}
  39. unit UnitTestGUITestRunner;
  40. interface
  41. uses
  42.   TestFramework,
  43.   TestExtensions,
  44. {$IFDEF DUNIT_CLX}
  45.   QGUITestRunner,
  46.   QComCtrls,
  47. {$ELSE}
  48.   GUITestRunner,
  49.   ComCtrls,
  50. {$ENDIF}
  51.   SysUtils;
  52. type
  53.   TSampleTest = class(TTestCase)
  54.   published
  55.     procedure Succeed;
  56.   end;
  57.   TSampleTestSetup = class(TTestSetup)
  58.   public
  59.     procedure SetUp; override;
  60.     procedure TearDown; override;
  61.   end;
  62.   Crack_TGUITestRunner = class(TGUITestRunner);
  63.   TTestGUITestRunner = class(TTestCase)
  64.   private
  65.     FGUIRunner: Crack_TGUITestRunner;
  66.   protected
  67.     function SampleSuite: ITestSuite;
  68.     procedure SetUp; override;
  69.     procedure TearDown; override;
  70.   published
  71.     procedure TestDisplayOfDecorator;
  72. {$IFNDEF DUNIT_CLX}
  73.   {$IFDEF CONSOLE}
  74.      protected
  75.   {$ENDIF}
  76.     procedure Test_CopyTestNametoClipboard;
  77. {$ENDIF}
  78.   end;
  79. implementation
  80. uses Clipbrd;
  81. { TTestGUITestRunner }
  82. function TTestGUITestRunner.SampleSuite: ITestSuite;
  83. begin
  84.   Result := TTestSuite.Create('Sample Suite');
  85.   Result.AddTest(TSampleTestSetup.Create(TSampleTest.Suite,
  86.     'Sample SetUp Decorator on Suite'));
  87.   Result.AddTest(TSampleTestSetup.Create(TSampleTest.Create('Succeed'),
  88.     'Sample SetUp Decorator on Test'));
  89. end;
  90. procedure TTestGUITestRunner.SetUp;
  91. begin
  92.   fFailsOnNoChecksExecuted := False;
  93.   FGUIRunner := Crack_TGUITestRunner.Create(nil);
  94. end;
  95. procedure TTestGUITestRunner.TearDown;
  96. begin
  97.   FGUIRunner.Free;
  98. end;
  99. procedure TTestGUITestRunner.TestDisplayOfDecorator;
  100. var
  101.   itemCount :Integer;
  102. begin
  103.   FGUIRunner.Suite := SampleSuite;
  104.   FGUIRunner.AutoSaveAction.Checked := False;
  105.   FGUIRunner.BreakOnFailuresAction.Checked := False;
  106.   { GUITestRunner will show the decorator on a node. And the decorated test
  107.     hierarchy underneath it. }
  108.   itemCount := FGUIRunner.TestTree.Items.Count;
  109.   check(itemCount = 6, 'wrong numer of items, was ' + IntToStr(itemCount));
  110. end;
  111. {$IFNDEF DUNIT_CLX}
  112. procedure TTestGUITestRunner.Test_CopyTestNametoClipboard;
  113. var node : TTreeNode;
  114. begin
  115.   AllowedMemoryLeakSize := 24;
  116.   Clipboard.AsText := 'Test Case';
  117.   FGUIRunner.CopyTestNameToClipboard(nil);
  118.   Assert(Clipboard.AsText = 'Test Case');
  119.   FGUIRunner.TestTree.Items.Clear;
  120.   node := FGUIRunner.TestTree.Items.AddFirst(nil, 'Another Test');
  121.   FGUIRunner.CopyTestNameToClipboard(node);
  122.   Assert(Clipboard.AsText = 'Another Test');
  123. end;
  124. {$ENDIF}
  125. { TSampleTest }
  126. procedure TSampleTest.Succeed;
  127. begin
  128.   check(true);
  129. end;
  130. { TSampleTestSetup }
  131. procedure TSampleTestSetup.SetUp;
  132. begin
  133.   { nothing - needed to override abstract }
  134. end;
  135. procedure TSampleTestSetup.TearDown;
  136. begin
  137.   { nothing - needed to override abstract }
  138. end;
  139. initialization
  140.   RegisterTests('GUI Tests', [TTestGUITestRunner.Suite]);
  141. end.