Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Softwaretests und Qualitätssicherung (https://www.delphipraxis.net/86-softwaretests-und-qualitaetssicherung/)
-   -   Config dunit test (https://www.delphipraxis.net/184912-config-dunit-test.html)

bernhard_LA 29. Apr 2015 22:42

Config dunit test
 
ich möchte meine dunit Tests über Attribute configurierbar machen, hierzu eine folgende Idee (unter Verwendung von d#)

Delphi-Quellcode:
uses
  TestFramework, Types, Generics.Collections, Classes, SysUtils, othersLib,
  DSharp.Testing.DUnit, Unit_DateUtilsHelper, addons;

type
  TConfigParams = class

  public
    RunOn32bit: boolean;
    RunOn64bit: boolean;
    RunOnWorkingDay: boolean;
    RunOnWeekend: boolean;

  end;

type

  TConfigtestCase = class(TTestCase)

  private
    FConfigParam: TConfigParams;

  protected
    procedure SetUp; override;
    procedure TearDown; override;

  published

    [TestCase( 'RunOn32bit=YES|RunOn64bit=YES|RunLongExecutionTest=YES')]
    procedure InittestParams(aParameterString: String);
    property ConfigParam: TConfigParams read FConfigParam write FConfigParam;

  end;

implementation

{ TCustomtestCase }

procedure TConfigtestCase.InittestParams(aParameterString: String);
begin
  FConfigParam.RunOn32bit := StrToBool(DecodeIniString('RunOn32bit',
    aParameterString, 'true'));
  FConfigParam.RunOn64bit := StrToBool(DecodeIniString('RunOn64bit',
    aParameterString, 'true'));
....

end;

procedure TConfigtestCase.SetUp;
begin
  inherited;
  FConfigParam := TConfigParams.Create;
end;

procedure TConfigtestCase.TearDown;
begin
  inherited;
  FConfigParam.Free;
end;

{ TConfigParams }



initialization

RegisterTest(TConfigtestCase.Suite);

end.
der eigentliche Testcase leitet sich dann immer vom TConfigtestcase ab ...


Delphi-Quellcode:
TestTParser = class(TConfigtestCase)
.....
 procedure TestFile (LibFile : String);
...

end;



procedure TestTParser.TestFile (LibFile : String);
var
  aFilename: string;
begin
   self.ConfigParam.TestCaseRootFolder := '';  ///  hier AV !!!
   .......
end;

nur bekomme ich leider beim Zugriff auf die ConfigParam Klasse eine AV, warum ?

BadenPower 30. Apr 2015 08:32

AW: Config dunit test
 
Zitat:

Zitat von bernhard_LA (Beitrag 1299742)
Delphi-Quellcode:
self.ConfigParam.TestCaseRootFolder := '';  ///  hier AV !!!
nur bekomme ich leider beim Zugriff auf die ConfigParam Klasse eine AV, warum ?

Ich konnte in Deiner Klasse "TConfigParams" keine Property mit dem Namen "TestCaseRootFolder" finden.

bernhard_LA 30. Apr 2015 09:19

AW: Config dunit test
 
sorry ich hatte die Klasse TConfigParams stark vereinfacht


also


Delphi-Quellcode:
  TConfigParams = class

   public
     RunOn32bit: boolean;
     RunOn64bit: boolean;
     RunOnWorkingDay: boolean;
     RunOnWeekend: boolean;

     TestRootFolder : String ;

     ...  ///  und noch viel mehr

   end;


ich habe die Vermutung meine Klasse TConfigParams ist außerhalb von der Klasse TConfigtestcase nicht verfügbar?

BadenPower 30. Apr 2015 09:26

AW: Config dunit test
 
Dann bin ich hier raus, denn ich kenne die Klasse "TTestCase" nicht und kann daher nicht nachprüfen, ob die Procedure "SetUp" der Klasse, in welcher die Property "ConfigParam" initialisiert werden sollte, auch tatsächlich aufgerufen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz