Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Prüfen ob string auf '.exe' endet

  Alt 19. Mai 2017, 13:26
Dafür bieten sich Unittests förmlich an:

Delphi-Quellcode:
unit Unit30;

interface
uses
  DUnitX.TestFramework;

type

  [TestFixture]
  TExtensionTests = class(TObject)
  public
    [Test]
    [TestCase('TestA1','test,test.exe')]
    [TestCase('TestA2','test.,test.exe')]
    [TestCase('TestA3','test.e,test.exe')]
    [TestCase('TestA4','test.e.,test.e.exe')]

    procedure Test1(const Value, res : string);


    [Test]
    [TestCase('TestB1','test,test.exe')]
    [TestCase('TestB2','test.,test.exe')]
    [TestCase('TestB3','test.e,test.exe')]
    [TestCase('TestB4','test.e.,test.e.exe')]
    procedure Test2(const Value, res : string);


  end;

implementation
 uses Sysutils;

const
  lext = '.exe';


function ChangeExtension(const Value : string; const extension : string) : string;
begin
  result := ChangeFileExt(Value, extension);
end;


function ChangeExtensionEndsText(const Value : string; const extension : string) : string;
begin
 result := Value;
 if AnsiLowerCase(ExtractFileExt(result)) <> '.exethen
  begin
    result := result + '.exe';
  end;
end;


procedure TExtensionTests.Test1(const Value, res : string);
Var
    lTestResult : String;

begin
 lTestResult := ChangeExtension(value, lext);
 assert.AreEqual(res, lTestResult);
end;


procedure TExtensionTests.Test2(const Value, res : string);
Var
    lTestResult : String;

begin
 lTestResult := ChangeExtensionEndsText(value, lext);
 assert.AreEqual(res, lTestResult);
end;

initialization
  TDUnitX.RegisterTestFixture(TExtensionTests);
end.
Wenn man erst mal angefangen hat Tests zu schreiben wird man förmlich süchtig danach
Fritz Westermann
  Mit Zitat antworten Zitat