我正在编写一个分类器,用于对特定交易是否适用于餐厅/酒店/等进行分类......这是用于分析外部网站的网络爬虫的一部分。 一开始我做了一顿饭?()方法,它接受一段文字,如果它认为文字是关于一顿饭的话,它会返回true。它不能100%准确,因为只使用简单的关键字匹配。
def meal?(text)
!text.match(/restaurant|meal|wine|.../i).nil?
end
现在我正在为它写一个测试,我有两个问题。第一个是我认为在单元测试中重新列出所有这些关键字有点多余。你觉得怎么样?
第二个问题: 我在源代码管理中有一个.html文件。它用于测试爬虫的解析功能。理论上它的所有项目都应该通过,所以我想在这个分类测试中使用那个html,解析那个html并将每个交易的描述提供给这个方法。
一个缺点是.html来自外部网站。当该站点更改布局时,我将更新此.html文件,然后我也必须更改此分类测试。但我认为这没关系。
这是推荐的吗?我想到了这种方式,因为我感觉不舒服从.html中提取信息并将其放在测试脚本本身(不是DRY,并使测试脚本非常大)。提供解析的描述会违反任何基本的测试法则,例如“这会隐藏开发人员的必要细节”或“这对生成报告不利”吗?
答案 0 :(得分:0)
好的,所以我显然误解了这个问题所以我会完全修改这个答案。
我个人认为从html文件中获取实际文本并将其复制/粘贴到测试更加简单和可取,而不是加载html文件的间接方式。我能找到两个理由......