ABAP 軌道的測試

學會在 Exercism 上測試你的 ABAP 練習


在 Exercism 上

每個練習都是一個單一的 ABAP 類別(裡面有一個或多個方法)。通常題目會直接給你方法的定義,包含輸入與輸出參數。你的任務,就是依照練習的規格把方法實作完成。

寫好想測試的程式碼之後,請選擇「Run Tests」。這會觸發對應的 ABAP 測試類別執行,幾秒鐘後就會顯示結果。如果有錯誤,就回到你的程式碼調整一下。如果所有測試都通過,恭喜你!你完成了這個練習,可以提交你的解答了。

疑難排解

在背後,你的 ABAP 程式碼是透過所謂的 abaplint 轉譯器 編譯並執行的。這還是個相對新的做法。如果你遇到自己無法解決的問題,歡迎到 GitHub 上開一個 issue。

除錯與記錄

在 Exercism 網站上執行 ABAP 練習時,並沒有可用的除錯器。這會讓你很難判斷測試為什麼會失敗。不過,有個聰明的方法可以在程式碼裡記錄資料(注意:這在任何 ABAP 系統中都行不通)。

這裡有個範例。第一張圖顯示的是帶有幾個失敗測試的練習程式碼。每個失敗的測試都會顯示預期值和實際值:

沒有加記錄的練習

為了讓除錯更容易,可以加入一或多個 console=>log() 呼叫,並把任何中間資料傳進這個方法。使用換行符號(\n)有助於整理輸出。當你執行測試時,就會在測試結果中看到主控台輸出:

有加記錄的練習

注意:主控台輸出只會顯示在失敗的測試中。如果你要發布自己的解答,也許可以把那些記錄敘述移除,讓你發布的版本對其他社群成員來說更好讀。

在自己的系統上

完成整個 track

要開始在自己的系統上練習,最簡單的方式是用 abapGit 複製這個儲存庫。這會為目前所有可用的練習建立骨架和測試類別。

個別練習

啟動你的 ABAP Development Tools(如果你的系統比較舊,也可以使用交易碼 SE24 或 SE80),然後建立一個新的 ABAP 類別,名稱就和練習裡的類別一樣。接著從 Exercism 網站複製貼上程式碼,把類別骨架和測試類別一併實作出來。

實作解答

現在你可以編輯某個練習的類別並實作解答。接著執行 ABAP 單元測試,看看是否通過所有測試。完成並測試成功後,把你的程式碼剪下貼到 Exercism 網站上該練習的編輯器裡。在那裡也執行一次測試。

測試並完成練習

在自己的系統上撰寫和測試程式時,用的是標準的 SAP ABAP 編譯器與執行環境。如果你的測試失敗,問題很可能出在你自己的程式碼上。再看一下吧。

如果你的程式碼順利通過單元測試,就把類別實作剪下貼到 Exercism 網站上的練習裡,然後選擇「Run Tests」。當然,測試在那裡也應該要通過。如果沒有通過,請參考上面的疑難排解一節。