测试真实的功能还是模拟依赖进行单元测试?

2024-10-02 14:16:54 发布

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

给定以下函数:

def _extract_row(self, rnumber, rcontent):
    number = rnumber.find('p').text.strip()
    p = rcontent.find('p')
    dloms = p.find_all('a')

    docs = {}
    for d in dloms:
        docs[d.text.strip()] = DOMAIN + d['href']

    ems = p.find_all('em')
    for e in ems:
        name = e.text.strip()
        if not docs.get(name):
            docs[name] = None

    ldocs = []
    for name, link in docs.iteritems():
        ldocs.append({'name': name,
                      'link': link})

    return {'number': number,
            'docs': ldocs}

如果rnumber和rcontent是BS4或Beautifulsoup对象,那么安装BS4作为测试依赖项并正常测试函数是更好还是模拟BS4更好?在

以下是我所做的:

^{pr2}$

会重视评论。在


Tags: textnameindocsnumberforlinkall
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:54

您的代码与beauthulsoup和正在解析的文档耦合得相当紧密。如果你的文档结构发生了变化,你将不得不重构你的测试代码和你的测试。在

此外,如果你想找到一种更有效的方法来使用beauthoulsoup(例如,通过使用CSS选择器),你就无法重构测试中的代码,而不需要再次完全修改测试以匹配。在

在这种情况下,您还可以使用一个真实的文档,它反映了当前的结构;这样您就可以测试代码的结果,而不是它是如何实现结果的。在

相关问题 更多 >

    热门问题