如何对返回'tell-dont-ask'对象的解析器进行单元测试?

时间:2013-07-11 09:43:30

标签: oop unit-testing tell-dont-ask

我有两个班级,ParserItem。 Parser类解析一些结构化文档,如果调用Item之类的东西,则返回Parser::GetItem(int some_id) - 对象。 Item类是用" Tell - don&t不要问"记住原则。我的意思是它没有针对几个内部变量的getter方法,这些变量由构造上的Parser填充。

现在的问题是:我如何对Parser班级进行单元测试?如何检查内部Item变量是否被正确解析? 我必须重新安排课程吗? 解析器接口返回完全构造的Item对象可能是不好的设计吗?

1 个答案:

答案 0 :(得分:1)

您的设计可能不理想,但如果不查看代码就很难知道。

要问自己的是Parser隐藏了太多信息,结果做得太多了。

我强烈建议你观看Michael Feather的演示文稿,其中(有趣的是)他讨论了如何使用测试改进解析器的设计,看起来他解决的问题类似于你想要的问题。解决。 Michael Feathers - the deep synergy between testability and good design