2011-10-03 52 views
2

所以我有一些具有挑战性的代码,我想重构。挑战在于它依赖于数据库查询,EJB和Java serverFaces。不是同时但接近它。单元测试高度相互依赖的代码

一个很好的例子是geocoder。取决于对数据库的多个查询,取决于输入和存储的数据,获取有意义的结果。该代码也可能引用其他帮助程序类并通过JSF框架查找它们。

测试这类代码的最佳策略是什么?我应该尽量分离出我的代码吗?我应该用嘲笑吗?什么为别人工作?

回答

4

那么,简短的回答是“是”。

首先,您需要将代码充分分解以构建单元测试。您所描述的内容过于复杂,无法应用通常的单元测试方法,无论如何,您将获得的更像是一个更高级别的验收测试。

现在,就这一因素而言,您有几种可能的方法,您可能会全部使用它们。

  1. 使用外部脚本测试数据库查询本身。

  2. 为构件直接访问数据库构造适当的模拟,以便查看对已知结果的影响。

  3. 使用类似JUnit的框架为功能单元构建单元测试。

  4. 检查最先进的技术,看看您是否可以用单元测试有效地测试输出HTML。