python - 测试所有类型的python函数
问题描述
大家好,我是python的初学者,我想测试我的功能。但我有错误。
我也可以在这里使用真假陈述吗?
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
我不知道你的意思是:
我也可以在这里使用真假陈述吗?
希望这有帮助!
推荐阅读
- json - 没有键的结构/映射数组
- json - 如何在 API 调用完成后和组件呈现之前更新状态
- php - 检查数据库中是否有另一个用户名不起作用
- java - 不能在模仿 ArrayList 工作方式的类中的两个数组之间使用相等运算符
- r - 找到存在/不存在变量和定量变量之间的统计检验
- javascript - Svelte.js 组件属性在带有 customElement 的脚本标记中未定义:true
- json - 我们如何在 Flutter 应用程序中解析 json 响应的内部节点?
- java - 如何在sping jpa中使用转换器
- java - 如何交错两个数组列表?
- wordpress - 无法在 woocommerce 的订单页面上使用 query_posts 或 wp_query 获取帖子