2017-10-18 77 views
1

我想問問是否有方法在將字符串數據與表中的數據進行比較之前進行修剪。例如,如果我們有Fitnesse修剪比較之前的字符串數據

|MyCompareClass| 
|getString? | 
|string1  | 

而getString()的結果將是「string1」。我想比較是綠色的,而不是期望的「string1」。 我正在尋找一種方法來做到這一點,而無需修改MyCompareClass源代碼。有任何想法嗎?

+0

什麼MyCompareClass看起來不一樣? –

+0

我正在談論的任何類別不是特別的。例如,在比較getString的輸出和期望值'string1'時,我想忽略任何空格。我們正在談論每個班級的每種方法的輸出。所以我正在尋找一種配置健身的方式,以便自動修剪輸出。 –

回答

1

你可以寫一個自定義字符串比較操作符類:

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; 
    } 
} 

然後與Fitnesse配置燈具註冊類:

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

你能解釋一下最後一部分嗎? 然後用Fitnesse配置燈具註冊您的班級: | configure | processor | add operator | MyCustomCompare | –

+0

您需要將此表放入FitNesse頁面,以便知道使用您的自定義比較類。通常你會把它放在一個SuiteSetUp頁面中,如果你想在你的所有測試中使用它。 –

0

您可以將!-string1 -!放入您的手機。我能想到的所有其他選項都涉及將代碼更改爲SUT或燈具。

+0

難道我們可能會重寫fitnesse中的某些類,以便從數據中自動刪除空間嗎? –