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

时间:2020-03-16 13:48:33

标签: python testing enums auto

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

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

1 个答案:

答案 0 :(得分:1)

@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正在针对字符串检查布尔值。