2013-03-06 30 views
2

我正在使用robotium來測試一個android項目。我有一個測試用例,我需要測試包含特殊字符的消息是否正確發佈。 因此,我創建由特殊字符常量:如何使用solo.searchText搜索一些包含特殊字符的文本

public static final String PostMessageWithSpecialchars = "Hey hi,* Have a good day*.:()[]-=/&!?"'+;@#"; 

,我使用下面的代碼進行搜索,並斷言,發佈消息是在不斷PostMessageWithSpecialchars消息酷似

assertTrue(solo.searchText(PostMessageWithSpecialchars)); 

但該測試在assertTrue行失敗。 如何搜索PostMessageWithSpecialchars文本?我不想使用轉義字符,因爲它會忽略特殊字符。我想確保PostMessageWithSpecialchars消息中的特殊字符能夠正確發佈。

+0

嗨,你可以指定你到底想找什麼。 searchText使用正則表達式,因此您需要創建適當的模式。 – andrew 2013-03-06 08:19:24

+0

我想發現郵件PostMessageWithSpecialchars發佈時顯示完全一樣,因爲它是...所以在發送消息後,我使用assertTrue(solo.searchText(PostMessageWithSpecialchars));檢查,但斷言失敗。 – NJF 2013-03-06 09:16:28

回答

2

方法solo.searchText()接受正則表達式模式。在搜索字符串中,您正在使用用於模式的特殊字符。你可以引用他們來找到任何文字:

assertTrue(solo.searchText(Pattern.quote(PostMessageWithSpecialchars))); 
+0

Pattern.quot它做什麼?它忽略特殊字符嗎? – NJF 2013-03-06 11:19:38

+0

是的,它引用特殊字符,所以正則表達式將執行搜索字符,而不是接受它作爲命令。 – andrew 2013-03-06 11:21:51

+0

但我不想忽略或轉義特殊字符。 B'coz當我輸入一條消息,比如「hi ** all」時,我想斷言那些「**」已正確發佈。 – NJF 2013-03-06 11:32:21

相關問題