ABAP單元測試的簡單例子

2022-03-27 11:32:52 字數 2362 閱讀 3355

abap的實際開發中還主要是面向過程的,除了設計介面時,實際當中使用類的地方真的屈指可數。發然發現abap可以使用單元測試,下面是個簡單的例子。

假設程式中有乙個get_attach_no方法,它負責從p_bktxt引數中獲取其中包含的附件數。p_bktxt一般是類似「附件數 1」,函式的功能就是要將其中的1返回。

1

report ztest.

23 start-of-selection. 45

form get_attach_no using p_bktxt type bktxt.

6data: str_length type i,

7start_pos type i,

8attach_length type i.

910 str_length =strlen( p_bktxt ).

1112

"標記1

1314 search p_bktxt for '

附件數'

. 15

16 if sy-subrc = 0

. 17 start_pos = sy-fdpos.

18 start_pos = start_pos + 3

. 19

20 attach_length = str_length -start_pos.

2122 if attach_length > 0

. 23 p_bktxt = p_bktxt+start_pos(attach_length).

24return.

25endif.

26endif.

2728 p_bktxt = ''

. 29 endform.

這個程式明顯有乙個bug,就是當輸入是空字串「」或者是「附件數」這樣的字串,會出錯,實際上我們希望能夠返回空字串。

按照之前的junit的經驗,如果要單元測試,首先寫乙個測試用例保證原來的功能沒問題,再寫乙個測試用例來測試新出現的情況。

在寫單元測試類時,必須要加上for testing,所有的測試方法都要放在private方法段裡,其中的assert方法是cl_aunit_assert=> assert_equals,引數act是實際的值,exp是期望值,msg是用來報錯時提示的。類的定義和實現如下:

1

class test definition

fortesting.

2private

section. 3

methods test_get_attach_no for

testing.

4methods test_get_attach_no_new for

testing.

5endclass. 6

7class test implementation. 8

method

test_get_attach_no.

9data

: test_bktxt type bktxt.

10 test_bktxt = '

附件數 1';

1112

perform

get_attach_no using test_bktxt.

13 cl_aunit_assert=>assert_equals( act = test_bktxt exp = '

1' msg = '

正常獲取失敗

').

14endmethod

. 15

16methods

test_get_attach_no_new.

17data

: test_bktxt type bktxt.

18 test_bktxt = '

附件數'

; 19

20 cl_aunit_assert=>assert_equals( act = test_bktxt exp = '

" msg =

'空附件數獲取失敗'

). 21

endmethod.

22endclass.

第乙個測試用例是 test_get_attach_no ,新增的功能的測試用例是 test_get_attach_no_new。開始執行時,程式一定會報乙個錯的,為了能夠測試通過,在標記1位置增加以下這段就可以了。

1 if str_length <= 3

. 2 p_bktxt = ''. 3

return.

4 endif.

ABAP單元測試最佳實踐

本文包含了我在開發專案中經歷過的實用的abap單元測試指導方針。我把它們安排成為問答的風格,歡迎任何人新增更多的q a s,以完成這個列表。method test 2 lief 2 pal.test assignment of deliveries to handling units set cod...

python Flask簡單的單元測試

昨天由於公司寫單元測試,我就去網上找了下怎麼寫,也參考了以前公司前輩的寫的一些單元測試,看起來也不算很複雜,先上 檔案的名字叫test 名字.py class testcrud 這裡是你要測試的的類,用test開頭 deftest query member for phone number 測試通過...

Python單元測試框架(附例子)

單元測試在 python中做是為了在應用程式的開發階段的早期識別錯誤時的錯誤不太經常和修復成本更低。單元測試是用python設計的指令碼化 級測試,用於驗證功能的小 單元 單元測試是一種基於測試夾具的物件導向框架。python單元測試主要涉及測試特定模組而不訪問任何相關 開發人員可以使用存根和模擬等...