您好,登錄后才能下訂單哦!
Table 表
基本上這一節就是文檔翻譯,不打算寫示例了,原因結尾會說。
Table表的意思是你可以寫出任意樣式的表格來。那么任意樣式的表格是如何被fitnesse識別并執行的?以及如何展示執行結果的?一起來看一下。
前面幾種表格的基本思路是——要么由表頭來確定方法名(決策表);要么固定方法名(動態決策表、查詢表);要么結合某些標識符確定方法名(腳本表)。總之給人有跡可循的印象,而Table表要換個思路——沒有表頭,也不用糾結于那個數傳給了哪個變量。唯一必須有的方法名稱是List doTable(List<List<String>>)。可以看出輸入參數是一個兩級List,其實就是表格內容啦。里面一級List是某一行中的元素,都是字符串形式傳過去的;外面一級List就是多個行了。返回值其實也是一個兩級List,只不過簡寫了。寫成這樣就更精確了——List<List<String>> doTable(List<List<String>> table)。返回的List的結構也是一樣的,各個行、行中的各個元素。元素也是字符串形式,內容如下:
pass——表示通過
pass:<message>——通過且帶信息
...不一一列舉了,參考文檔的說明
可以看出,在這個方法里我們要全面負責輸入和輸出,針對輸入List中的內容做出判斷和處理,再寫到一個輸出List里。這也意味著fixture相對靈活與復雜。
結果展示是這樣的:把這個返回的“表格”(二級列表)中的元素和原始“表格”進行“逐格疊加”。當輸出字符是pass,就把輸入表的這個“格”變綠顯示,如果是pass:message,就變綠且附加message顯示,如果是fail,就變紅顯示,如果是空字符串,就黑色原始值顯示,如果是沒有標記的普通字符串,就替換原來的內容并且紅色......
如果返回“表格”的大小、長短和輸入表格不同,那么“疊加”會發生什么。fitnesse已經考慮到了這點——如果結果短了,后面就不管了,原樣顯示;如果結果長了,就附加顯示出來
綜上所述,Table表是一種最靈活的表示。但我個人相當不建議使用這種,除非從之前介紹的表格中找不到合適的。原因是這種代碼寫起來會比較復雜且通用性極差。我對復雜的東西有天然的抵觸心理。有人說程序員分兩種,一種是把簡單的事情考慮的很復雜,一種是把復雜的事情考慮的盡量簡單。毫無疑問我是后面這種。我所有的文章都是在盡量用最簡單的方法來闡述事情。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。