2017-10-18 1 views
1

Ich wollte fragen, ob es eine Möglichkeit gibt, String-Daten zu trimmen, bevor sie mit den Daten in der Tabelle verglichen werden. Zum Beispiel haben wirFitnesse Trim String-Daten vor dem Vergleich

|MyCompareClass| 
|getString? | 
|string1  | 

Und das Ergebnis von getString() wird "string1" sein. Ich möchte, dass der Vergleich grün und nicht erwartet "string1" ist. Ich suche nach einer Möglichkeit, dies zu tun, ohne den MyCompareClass-Quellcode zu ändern. Irgendwelche Ideen?

+0

Was wie sieht MyCompareClass? –

+0

Ich spreche über jede Klasse, nicht speziell. Ich möchte alle whitespaces ignorieren, wenn ich zum Beispiel die Ausgabe von getString mit dem erwarteten Wert 'string1' vergleiche. Wir sprechen über die Ausgabe jeder Methode in jeder Klasse. Also suche ich nach einer Möglichkeit, Fitness so zu konfigurieren, dass er automatisch die Ausgabe trimmt. –

Antwort

1

Sie können eine benutzerdefinierte Zeichenfolge schreiben vergleichen Operatorklasse:

public class MyCustomCompare: CellOperator, CompareOperator<Cell> { 
    public bool CanCompare(TypedValue actual, Tree<Cell> expected) { 
     return actual.Type == typeof(string); 
    } 

    public bool Compare(TypedValue actual, Tree<Cell> expected) { 
     return actual.Value.ToString().Trim() == expected.Value.Text; 
    } 
} 

Dann Ihre Klasse mit der Halterung Fitnesse configure registrieren:

|configure|processor|add operator|MyCustomCompare| 
+0

Kannst du mehr über den letzten Teil erklären? Dann registrieren Sie Ihre Klasse mit dem Fitnesse configure Fixture: | configure | processor | add operator | MyCustomCompare | –

+0

Sie müssen diese Tabelle in eine FitNesse-Seite einfügen, damit sie Ihre benutzerdefinierte Vergleichsklasse verwenden kann. Normalerweise würden Sie dies in eine SuiteSetUp-Seite einfügen, wenn Sie möchten, dass sie in allen Ihren Tests verwendet wird. –

0

Sie könnten !-string1 -! in Ihrer Zelle setzen. Alle anderen Optionen, die ich mir vorstellen kann, beinhalten Code-Änderungen an entweder SUT oder Fixture.

+0

Können wir vielleicht nicht einige Klassen in fitnesse überschreiben, damit der Speicherplatz automatisch aus den Daten entfernt wird? –