0

我有两个班,ParserItem。Parser 类解析一些结构化文档并返回Item-objects 如果您调用类似Parser::GetItem(int some_id). Item 类的编写考虑了“告诉 - 不要问”的原则。我的意思是它没有用于由Parseron 构造填充的几个内部变量的 getter 方法。

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

4

1 回答 1

1

你的设计可能并不理想,但不看代码就很难知道。

要问自己的是 Parser 隐藏了太多信息,因此做了太多事情。

我强烈建议您观看 Michael Feather 的演示文稿,其中(有趣地)他讨论了如何使用测试改进解析器的设计,看起来他解决的问题与您要解决的问题相似。Michael Feathers - 可测试性和良好设计之间的深度协同作用

于 2013-07-11T11:08:16.520 回答