這是我在這里提出的第一個編程問題。我也是一個初學者的python程式員。
我正在制作一個測驗程式以測驗另一個程式(板)的功能。基本上,主程式(板塊)要求一個字串,然后根據一堆函式檢查該字串以查看該字串是否有效。
這是最上面的測驗程式的一小段:
from plates import is_valid
def main():
test_length_check()
test_letter_start()
test_punc_check()
test_zero_lead()
test_seq_check()
def test_length_check():
assert is_valid("CS50") == True
assert is_valid("C") == False
assert is_valid("TOOLONGBOI") == False
這是我想從主要方法(板塊)測驗的功能:
def main():
plate = input("Plate: ")
if is_valid(plate): # if is_valid == True
print("Valid")
else:
print("Invalid")
# print(arg_list_val) # If invalid, shows what tests have failed
def is_valid(s):
arg_list_val = [length_check(s), letter_start(s), punc_check(s),
zero_lead(s), seq_check(s)] # Bool list of all 4 req checks
if all(arg_list_val): # If and ONLY if all req checks are True
return True
我的測驗結果如下:
test_plates.py::test_length_check FAILED [ 20%]
test_plates.py:10 (test_length_check)
None != False
Expected :False
Actual :None
<Click to see difference>
def test_length_check():
assert is_valid("CS50") == True
> assert is_valid("C") == False
E AssertionError: assert None == False
E where None = is_valid('C')
test_plates.py:13: AssertionError
我所有的“實際值”都報告“無”而不是相應的布林值。我究竟做錯了什么?
主程式肯定按預期作業。我只是在練習單元測驗。如果你知道,你就知道;)
uj5u.com熱心網友回復:
正如 Matthias 已經指出的,當一個函式結束時沒有顯式回傳它None
默認回傳的東西。因此,只要您正在檢查,您的斷言就會成功True
,但在檢查False
:時會失敗False != None
。
將 a 添加return False
到您的函式中,或修改您的斷言。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473826.html
下一篇:如何為DjangoRestFrameWork中具有兩個ManyToManyFields的模型撰寫__str__方法的測驗用例?