前言
在剛學(xué)習(xí)編程的時候總是忘記處理一些特例(尤其是動態(tài)語言可以傳各種值),為了養(yǎng)成良好的編程和測試習(xí)慣,在編寫單元測試用例的時候, 我們注意考慮下如下測試用例(等價類劃分):
- 正常值功能測試
- 邊界值(比如最大最小,最左最右值)
- 異常值(比如 None,空值,非法值)
實戰(zhàn)操作
def
binary_search
(
array
,
target
)
:
if
not
array
:
return
-
1
beg
,
end
=
0
,
len
(
array
)
while
beg
<
end
:
mid
=
beg
+
(
end
-
beg
)
//
2
# py3
if
array
[
mid
]
==
target
:
return
mid
elif
array
[
mid
]
>
target
:
end
=
mid
else
:
beg
=
mid
+
1
return
-
1
def
test
(
)
:
"""
如何設(shè)計測試用例:
- 正常值功能測試
- 邊界值(比如最大最小,最左最右值)
- 異常值(比如 None,空值,非法值)
"""
# 正常值,包含有和無兩種結(jié)果
assert
binary_search
(
[
0
,
1
,
2
,
3
,
4
,
5
]
,
1
)
==
1
assert
binary_search
(
[
0
,
1
,
2
,
3
,
4
,
5
]
,
6
)
==
-
1
assert
binary_search
(
[
0
,
1
,
2
,
3
,
4
,
5
]
,
-
1
)
==
-
1
# 邊界值
assert
binary_search
(
[
0
,
1
,
2
,
3
,
4
,
5
]
,
0
)
==
0
assert
binary_search
(
[
0
,
1
,
2
,
3
,
4
,
5
]
,
5
)
==
5
assert
binary_search
(
[
0
]
,
0
)
==
0
# 異常值
assert
binary_search
(
[
]
,
1
)
==
-
1
當(dāng)然我們也不用做的非常細(xì)致,要不然寫測試是一件非常繁瑣累人的事情,甚至有時候為了測試而測試,只是為了讓單測覆蓋率好看點。 當(dāng)然如果是web應(yīng)用用戶輸入,我們要假設(shè)所有的參數(shù)都是不可信的。 但是很多內(nèi)部調(diào)用的函數(shù)我們基于約定來編程,如果你瞎傳參數(shù),那就是調(diào)用者的責(zé)任了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
