目前我正在开发一段代码,它首先从一组文档中搜集句子,然后对这些句子进行标记,然后使用结果分析令牌序列的循环频率,包括案例变体(大写/小写/引导帽/其他),然后打印出结果。实施多阶段过程时的TDD策略?
现在我希望在打印出结果之前引入两个阶段:
1.首先,去除“停用词”(即词或短序列其频率永远是兴趣,比如,在英语,“其中”,“其中”,等等) - 从数据库表中获取这些停用词/“停止序列”
2.其次,调出使用户能够识别序列的对话新的停用词,然后删除所涉及的令牌序列,并将有问题的序列添加到数据库表中。
问题是,这是一个多阶段过程,我只是想知道TDD专家面临的情况是什么样的:我为每个单独的阶段创建一个新的测试方法......?问题在于每个单独的阶段都需要使用前一阶段的“实时内存数据”:另一种可能性是以某种方式将这些数据序列化,然后在测试下一阶段时对其进行反序列化......但是这会涉及应用程序代码做的事情只对测试代码有好处,也就是说,这意味着为测试代码的好处调整(“扭曲”?)应用程序代码,这在原则上似乎是错误的...
此外,如果任何人都可以将我指向一本书或网站的方向,以帮助像我这样的TDD新手进入“更高层次”,我将非常感激。
后
为了谁该标记为“最喜欢”的人:现在我有一本书叫“成长的面向对象的软件,通过测试指导”,这是保持良好审查和似乎是有人想从初学者到中级。第一印象不错。
专家对本书有任何意见也欢迎,当然...
要明确一点,您已经对流程的现有阶段进行了测试,您的问题是关于您正在引入的新阶段? – forsvarir
我刚刚在单个功能测试中开发了现有的2个阶段......我现在想知道如何将多阶段过程在实践中由经验丰富的TDD人员分解......作为第一步,我把这两个阶段放到不同的方法中(我使用Jython,而这一切都发生在SwingWorker中)。但只是为特定的舞台制作一个方法仍然留下了为每个要测试的方法创建**前置条件**的问题......希望这是有道理的...... –