Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
Delphi 11 Alexandria
|
AW: Prüfen ob string auf '.exe' endet
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)) <> ' .exe' then
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
|
|
Zitat
|