我有两个班级,Parser
和Item
。 Parser类解析一些结构化文档,如果调用Item
之类的东西,则返回Parser::GetItem(int some_id)
- 对象。
Item类是用" Tell - don&t不要问"记住原则。我的意思是它没有针对几个内部变量的getter方法,这些变量由构造上的Parser
填充。
现在的问题是:我如何对Parser
班级进行单元测试?如何检查内部Item
变量是否被正确解析?
我必须重新安排课程吗?
解析器接口返回完全构造的Item
对象可能是不好的设计吗?
答案 0 :(得分:1)
您的设计可能不理想,但如果不查看代码就很难知道。
要问自己的是Parser隐藏了太多信息,结果做得太多了。
我强烈建议你观看Michael Feather的演示文稿,其中(有趣的是)他讨论了如何使用测试改进解析器的设计,看起来他解决的问题类似于你想要的问题。解决。 Michael Feathers - the deep synergy between testability and good design