我有功能和测试部分。
测试部分, 但是我遇到这种错误,该如何解决,我需要使用类型转换吗?
TypeError: unsupported operand type(s) for -: 'str' and 'str'
例如,我的文件中有aa-bb-cc。这意味着我有3个字段,如果我想得到正确的话,我需要传递fields_number = 3
答案 0 :(得分:2)
看看您传递给装饰器的第一个参数-'file_name, fields_number=None, sep='-', expected_result'
。
由于'-'
似乎减去了两个字符串:'file_name, fields_number=None, sep='
和', expected_result'
。不确定是否需要包括默认值,但是如果您确实使用双引号,则不要在其中包含单引号的字符串周围使用单引号。
编辑:这应该起作用:
@pytest.mark.parametrize('file_name, fields_number, sep, expected_result',
[('file_prog', 5, '-', True),
('file_prog', None ,'-', False)])
def test_func(file_name, fields_name, sep, expected_result):
result = func(file_name=file_name, fields_number=fields_number, sep=sep)
assert result == expected_result
您可以将装饰器的第一个参数替换为列表:
['file_name', 'fields_number', 'sep', 'expected_result']