簡體   English   中英

測試所有類型的python函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM