【发布时间】:2011-10-27 10:22:59
【问题描述】:
我正在编写一个分类器,用于对餐厅/酒店/等的特价商品进行分类...这是用于分析外部网站的网络爬虫的一部分。 首先我做了一顿饭?() 方法,它接受一段文本,如果它认为文本是关于一顿饭的,它将返回 true。它不可能 100% 准确,因为只使用了简单的关键字匹配。
def meal?(text)
!text.match(/restaurant|meal|wine|.../i).nil?
end
现在我正在为它写一个测试,我有两个问题。第一个是我认为在单元测试中重新列出所有这些关键字有点多余。你怎么看?
第二个问题: 我在源代码管理中有一个 .html 文件。它用于测试爬虫的解析功能。理论上它的所有项目都应该通过,所以我正在考虑在这个分类测试中使用那个 html,解析那个 html 并将每个交易的描述输入到这个方法中。
一个缺点是 .html 来自外部站点。当该站点更改布局时,我将更新此 .html 文件,然后我也必须更改此分类测试。不过我觉得还可以。
这是推荐的吗?我之所以想到这种方式,是因为我觉得从那个 .html 中提取信息并将其放入测试脚本本身(不是 DRY,并且使测试脚本相当大)中感到不安。提供解析后的描述是否会违反任何基本的测试法则,例如“这会向开发人员隐藏必要的细节”或“这对生成报告不利”?
【问题讨论】:
标签: unit-testing testing