[英]Testing python function all types
大家好,我是 python 初學者,我想測試我的功能。 但我有錯誤。
我也可以在這里使用 true 或 false 陳述。
def create(name1, name2, ext='.jpg'):
if name2:
return '%s.%s%s' % (name1, name2, ext)
else:
return '%s%s' % (name1, ext)
@pytest.mark.parametrize('input, expected_result',
[('ff0c5.ddmn6.jpg', 'ff0c5.ddmn6.jpg'),
('ff0c5.ddmn6', 'ff0c5.ddmn6.jpg'),
('ff0c5.jpg', 'ff0c5.jpg')]
)
def test_create(input, expected_result):
assert create(input) is expected_result
我得到這個錯誤。所以我需要讓他們全部通過。
def test_create(input, expected_result):
> assert create(input) is expected_result
E TypeError: create() missing 1 required positional argument: 'name2'
在您的示例中, name2
參數必須始終傳遞到函數中。 您的測試失敗了,因為您只將兩個參數之一傳遞給您的函數。
要測試兩個邏輯流,您必須為name2
傳遞一個變量,該變量等於True
(下面的第一個測試)和False
(底部的三個測試),這實際上取決於您希望在應用程序中如何使用您的函數
def create(name1, name2, ext=".jpg"):
if name2:
return "%s.%s%s" % (name1, name2, ext)
else:
return "%s%s" % (name1, ext)
@pytest.mark.parametrize(
"name1, name2, expected_result",
[
("ff0c5", "ddmn6", "ff0c5.ddmn6.jpg"),
("ff0c5", None, "ff0c5.jpg"),
("ff0c5", False, "ff0c5.jpg"),
("ff0c5", 0, "ff0c5.jpg"),
],
)
def test_create(name1, name2, expected_result):
assert create(name1, name2) == expected_result
不知道你說的是什么:
我也可以在這里使用 true 或 false 陳述。
希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.