python:我在测试代码中做错了什么



我想了解我在这里做错了什么。

from enum import Enum, auto
class colors(Enum):
red= auto()
green= auto()
yellow= auto()

这是我的课。

def is_first(self):
return self is not colors.red

我的第一个功能。

def second(self):
if self is colors.red:
return ''
elif self is green:
return 'second_type'
elif self is yellow:
return 'third_type'

我在测试中做错了什么?我需要他们都通过。

@pytest.mark.parametrize('input_str, expected_result',
[('aa', False)])
def test_is_first(input_str, expected_result):
assert is_first(input_str) is expected_result

对于我的第二个功能

@pytest.mark.parametrize('input_str, expected_result',
[('', True),
('second_type', True),
('third_type', True),
('aa', False)])
def test_second(input_str, expected_result):
assert second(input_str) is expected_result
@pytest.mark.parametrize('input_str, expected_result',
[('', True),
('second_type', True),
('third_type', True),
('aa', False)])
def test_second(input_str, expected_result):
assert second(input_str) is expected_result

您写道:

def second(self):
if self is colors.red:
return ''
elif self is green:
return 'second_type'
elif self is yellow:
return 'third_type'

这将通过测试:

def second(self):
if self == '':
return True
elif self == 'second_type':
return True
elif self == 'third_type':
return True
elif self 'aa':
return False

您的assert is_first(input_str) is expected_result将失败。

def is_first(self):
return self is not colors.red

这将返回TrueFalse。您的expected_result正在根据字符串检查布尔值。

相关内容

最新更新