python:我的测试代码在这里做错了什么?

问题描述 投票:1回答:1

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

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
python testing enums auto
1个回答
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正在针对字符串检查布尔值。

© www.soinside.com 2019 - 2024. All rights reserved.