2015-06-13 52 views
0

我創建了一個自定義的FEST條件來驗證我的實際字符串匹配或等於預期的字符串定製FEST斷言:顯示可讀的消息

public class StringMatchesOrIsEqualTo extends Condition<String>{ 

    private String expectedStringOrExpression; 

    public StringMatchesOrIsEqualTo(final String expectedStringorExpression){ 
     this.expectedStringOrExpression = expectedStringorExpression; 
    } 

    @Override 
    public boolean matches(String value) {   
     return value.matches(expectedStringOrExpression) || value.equals(expectedStringOrExpression); 
    } 
} 

每當conditon失敗,我希望它顯示一個消息顯示我一下原來的和預期的字符串是

目前顯示字符串是

actual value:<'Some String'> should satisfy condition:<StringMatchesOrIsEqualTo> 

有沒有辦法,這個消息a1因此顯示匹配是針對什麼的?

我試圖重寫toString方法的類

@Override 
public String toString() {  
    return "string matches or is equal to : " + expectedStringOrExpression; 
} 

,但似乎並沒有工作。

回答

2

你要設置的description,它可以通過調用Condition(String)構造函數來完成:

public StringMatchesOrIsEqualTo(final String expectedStringorExpression){ 
    super("A String that matches, or is equal to, '" + expectedStringorExpression "'"); 
    this.expectedStringOrExpression = expectedStringorExpression; 
} 

或者,您可以覆蓋description()

@Override 
public String description() 
{ 
    return "A String that matches, or is equal to, '" + expectedStringorExpression "'"); 
}