2013-05-13 44 views
0

我正在做一些本地化測試,我必須測試英語和日語中的字符串。英文字符串可能是'等待時間是{0}分鐘。「而日文字符串可能是'待分數',其中{0}是一個可以在測試過程中改變的數字。這兩個字符串都來自相應的屬性文件。我將如何能夠檢查字符串的存在以及可以根據正在運行的測試而改變的數字。如何檢查字符串中的值是否有變化

我應該添加一個事實,即我正在網頁上檢查這些字符串,這些字符串將以相關語言顯示,具體取決於它們被查看的位置。我正在使用watir來驗證文本。

+3

你在問如何構建一個正則表達式來匹配它們,或者如何使用Watir語法來識別HTML元素? – 2013-05-13 14:39:46

+0

我希望能有一個正則表達式來確保顯示正確的文本,但我幾乎沒有使用它們的經驗。目前,我正在對文本進行切片,只是在尋找領先的文本,但這對測試並不理想。 displayedText = get_string(「text」)\t if $ osLocation ==「jp」 \t \t text = displayedText.slice(0 ..11) else \t \t text = displayedText.slice(0..25) end – 2013-05-13 16:08:07

回答

0

您可以在其他地方閱讀關於進行適當語言轉換測試的最佳方法的各種理論。

一種典型的方法是用常量代替代碼中的所有硬編碼文本匹配,然後有一個文件設置可根據所用語言更新的常量。 (我已經看到,通過將該文件的require包裝在基於被測試語言的case語句中來完成另一種方法是對每個值使用一個數組或哈希值,通過一個名爲'language'的變量枚舉,測試動態更改語言。因此,驗證會是這個樣子

b.div(:id => "wait-time-message).text.should == WAIT_TIME_MESSAGE[language]

匹配文本,其中部分有望改變,但落在預測的模式中,使用正則表達式。我會建議關於ruby正則表達式的一點點閱讀,特別是使用ruby中的unicode正則表達式,以及一些使用Rubular等工具來測試正則表達式的實驗

在正則表達式上面的例子如:

/Waiting time is \d+ minutes.//待ち時間は\d+分です。/

將匹配上面的消息,並期待在中間(請注意,它會如果沒有數字顯示,失敗,如果你想要一個或多個數字零或更多的數字,那麼你需要一個*代替+

+0

這是我們在開始使用之前必須查看日文版本的方法。我希望有另一種方法來解決它,因爲可能需要新的語言支持。謝謝。 – 2013-05-17 09:47:24

0

不檢查文字字符串。檢查可用於呈現最終字符串的某種中間形式。

有時候,這是通過指定的消息和任何佔位符數據,像做:

[ :waiting_time_in_minutes, 10 ] 

哪裏會呈現出作爲適當的本地化的文本。

另一種方法是將其中一種語言視爲模板,這種模板在靈活性方面更受限制,但大部分時間都適用。在這種情況下,您可以使用英文版作爲返回的字符串,並使用助手將其呈現到最終頁面。

相關問題