我有以下测试用例:
CPP_CSHARP_REGEX_TEST_CASES = [
("C++", True),
("C#", True),
("C+", False),
("C##", False),
("C", True),
]
我可以使用哪个正则表达式来通过 pytest?我尝试过r"^C[+{2},#{1}]$"
Tim Biegeleisen 的解决方案,但失败了C
:
________________________________________________________________________________ test_cpp_csharpRegex[C-True] ________________________________________________________________________________
data = 'C', expected = True
@pytest.mark.parametrize("data, expected", CPP_CSHARP_REGEX_TEST_CASES)
def test_cpp_csharpRegex(data, expected):
cpp_csharp_regex = r"\bC(?:\+\+|#)(?=\s|$)"
> assert expected == bool(re.match(cpp_csharp_regex, data))
E AssertionError: assert True == False
E + where False = bool(None)
E + where None = <function match at 0x7ab4e2cded40>('\\bC(?:\\+\\+|#)(?=\\s|$)', 'C')
E + where <function match at 0x7ab4e2cded40> = re.match
regex_test.py:131: AssertionError
================================================================================== short test summary info ===================================================================================
FAILED regex_test.py::test_cpp_csharpRegex[C-True] - AssertionError: assert True == False
================================================================================ 1 failed, 70 passed in 0.08s ================================================================================