Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi DUnitX und Boolean Parameter (https://www.delphipraxis.net/203633-dunitx-und-boolean-parameter.html)

Sherlock 6. Mär 2020 12:06

DUnitX und Boolean Parameter
 
Hi,

ich habe soeben den kleinen Zeh ins eisige DUnitX Wasser gesteckt und bin erschrocken zurück gezuckt.:-D

Folgendes probiere ich, ich habe eine Methode einer Klasse, die einen Verbindungsversuch auf einen Webserver initiiert, und gemäß Antwortverhalten des somit "angepingten" eine Property dieser Klasse auf Connected setzt.
Testen wollte ich das mit einem Positiv Fall und einem Negativ Fall. Also so:

Delphi-Quellcode:
 [TestFixture]
  TMyFirstUnitTest = class(TObject)
  private
    TestKomm: TMyKommunikation;
  public
    [Setup]
    procedure Setup;
    [TearDown]
    procedure TearDown;
    // Sample Methods
    // Simple single Test
    [Test]
    [TestCase('PingSuccess', '192.168.110.78, True')]
    [TestCase('PingFail', '127.0.0.1, False')]
    procedure PingTest(IP: string; _Result: Boolean);
Im Test habe ich
Delphi-Quellcode:
procedure TMIVUnitTest.Setup;
begin
  TestKomm := TMyKommunikation.Create;
end;

procedure TMyFirstUnitTest.TearDown;
begin
  TestKomm.Free;
end;

procedure TMIVUnitTest.PingTest(IP: string; _Result: Boolean);
var
  Erg: Boolean;
begin
  TestKomm.ServerIP := IP;
  TestKomm.Ping(True);
  Erg := TestKomm.Connected;
  Assert.IsEqual(Erg = _Result);
end;
_Result wird immer als True an die Testmethode gegeben, was zu falschen Ausgaben im Testrunner führt...erwarte ich da etwas unmögliches, oder mache ich etwas falsch?

Werde erst wieder Montrag antworten können (Wochenende, YAY!)

Sherlock

Klaus01 6. Mär 2020 12:22

AW: DUnitX und Boolean Parameter
 
.. gibt ein ping auf 127.0.0.1 denn nicht immer ein positives Ergebnis zurück.
Diese Adresse existiert immer.

und bei mir gibt es in DunitX kein Assert.isEqual sondern nur assert.AreEqual.

Grüße
Klaus

Uwe Raabe 6. Mär 2020 12:50

AW: DUnitX und Boolean Parameter
 
Nimm mal das Leerzeichen zwischen dem Komma und dem True/False raus.

Sherlock 9. Mär 2020 07:29

AW: DUnitX und Boolean Parameter
 
Der Uwe wieder :thumb:
Danke das war es. Da muss man mal drauf kommen. Ein Trim ist vermutlich unperformant...

Zum "Ping" an sich, ich hatte ja geschrieben, daß ein Webserver angesprochen wird. Der läuft nicht auf meinem localhost, darum habe ich das als Negativtest drin.

Kann ich ja jetzt weiter Tests schreiben. Danke nochmals!

Sherlock

Stevie 9. Mär 2020 10:41

AW: DUnitX und Boolean Parameter
 
Zitat:

Zitat von Sherlock (Beitrag 1459213)
Danke das war es. Da muss man mal drauf kommen. Ein Trim ist vermutlich unperformant...

Nö, einfach in der letzten Zeile von
Delphi-Quellcode:
TestCaseAttribute.Create
in
Delphi-Quellcode:
DUnitX.Attributes.pas
um das
Delphi-Quellcode:
lValues[i]
hinzufügen.

Uwe Raabe 9. Mär 2020 11:51

AW: DUnitX und Boolean Parameter
 
Zitat:

Zitat von Stevie (Beitrag 1459233)
Nö, einfach in der letzten Zeile von
Delphi-Quellcode:
TestCaseAttribute.Create
in
Delphi-Quellcode:
DUnitX.Attributes.pas
um das
Delphi-Quellcode:
lValues[i]
hinzufügen.

Und wenn ich dann mal einen Blank als Parameter übergeben will?

Stevie 9. Mär 2020 17:23

AW: DUnitX und Boolean Parameter
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1459242)
Und wenn ich dann mal einen Blank als Parameter übergeben will?

Dann nutzt man eine Bibliothek, wo das Parameter parsen besser ist :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 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