【发布时间】:2013-10-10 20:41:48
【问题描述】:
我的老板决定为我已经研究了一段时间的 Java 程序编写单元测试是个好主意。该程序是您相当典型的混乱,但它并不大。我以前从未使用或编写过任何单元测试,并且从我所读过的关于该主题的所有内容来看,预先存在的项目并不是最好的起点。不过我真的没有选择,所以我有一些问题。
我的主要问题是:我已经阅读了很多关于单元测试应该做什么、它们的范围应该是什么、如何在 TDD 过程中编写生产代码等方面的内容。我还没有找到任何会说话的人关于代码实际应该去哪里。我是否在生产代码类中自己编写测试?我是否将它们全部放在一个单独的 .java 文件(或多个文件)中?我是否将它们放在项目中自己的目录中?如果我使用后一个选项中的任何一个,我将如何访问私有对象和方法以测试它们?我觉得这应该是一个相当明显的问题,但我就是不知道。
还有一个次要问题:我已经看到很多关于使用 TDD 的令人信服的论据,我想在我的个人项目中尝试一下。无论我的第一个问题的答案是否适用于启动全新的项目?或者我会为现有项目而不是新项目实施不同的单元测试吗?
【问题讨论】:
-
数以百万计的搜索结果准确地回答了您提出的问题 - 在 SO 上再次询问似乎很浪费时间。
-
你有问题,分离测试是一个小问题。主要问题是代码不会被编写来进行测试,为了测试它,你必须改变它,而且你没有单元测试来证明你为测试它所做的改变没有破坏它。如果它很小,请将您当前的代码视为概念证明,重新开始并使用 TDD 执行,即正确。
-
向预先存在的项目添加测试很好——很好,甚至。这似乎需要更多的工作,因为您必须进行初始推动,而不是逐步建立它。您可能会发现,在此过程中,您必须重构类以使它们更小、更模块化,这甚至可能使代码不那么混乱。
标签: java unit-testing