Python regex单元测试

2024-04-25 14:39:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对一个小regex def做一些单元测试。在

x = "TEST TEST TEST. Regular Expressions. TEST TEST TEST"

def find_start_end(phrase,sample_set):
    m = re.search(phrase, sample_set)

    start = m.start()
    end = m.end()
    return (start,end)
    #print(start,end)

if __name__ =="__main__":
    print(find_start_end("Regular Expressions", x))

返回(16,35)。。。。在

我的测试单位是。。。。在

^{pr2}$

测试1通过了,我的问题是测试2如何测试AttributeError: 'NoneType' object has no attribute 'start'。在

我试图使用assertRaises,但我不确定我做错了什么。我愿意接受任何更好的建议。只是想知道如何测试NoneType。我对正则表达式很陌生。在


Tags: sampletestredef单元测试findstartexpressions
1条回答
网友
1楼 · 发布于 2024-04-25 14:39:15

代码使用^{}错误。在

替换以下行:

self.assertRaises(AttributeError, find_start_end("Regular Expressions", x))

有:

^{pr2}$

或者:

# Use assertRaises as context manager
with self.assertRaises(AttributeError)
    find_start_end("Regular Expressions", x)

相关问题 更多 >