给定以下函数:
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}$会重视评论。在
您的代码与beauthulsoup和正在解析的文档耦合得相当紧密。如果你的文档结构发生了变化,你将不得不重构你的测试代码和你的测试。在
此外,如果你想找到一种更有效的方法来使用beauthoulsoup(例如,通过使用CSS选择器),你就无法重构测试中的代码,而不需要再次完全修改测试以匹配。在
在这种情况下,您还可以使用一个真实的文档,它反映了当前的结构;这样您就可以测试代码的结果,而不是它是如何实现结果的。在
相关问题 更多 >
编程相关推荐