从java类中删除测试代码

时间:2010-02-13 05:33:41

标签: java junit

有没有办法从我的Java类中删除JUnit @Test代码。 目前,我将测试代码嵌入到与要测试的源代码相同的文件中 (是的,我知道这很糟糕,但是我继续维护我的测试代码是一种激励)

我想从代码中剥离测试方法,构建二进制文件并进行部署。

由于

3 个答案:

答案 0 :(得分:2)

不,我不知道你怎么能这样做,但我可以告诉你为什么你可能不想首先使用这种方法。

  1. 您可能能够删除测试,但是所有引用测试库的导入呢?
  2. 测试可能调用的任何私有方法怎么样?它们不会标有@Test
  3. 为什么要首先解决所有这些麻烦?每个IDE都有自动生成测试类的工具和用于在它们之间切换的快捷方式。
  4. 如果测试注释意外地应用于您的某个类方法,该怎么办?
  5. 如果您的某个类方法意外调用了测试方法,该怎么办?
  6. 这些只是我能想到的一些原因......为什么不首先避免这个问题?

答案 1 :(得分:0)

我知道没有具体的工具可以完成这项任务。

您可能需要“舔舔”并使用您喜欢的文本编辑器/ IDE进行更改。 (也许这个练习会教你多注意好的练习/好的风格......)

答案 2 :(得分:0)

有一些tools可能会帮助你做到这一点(旨在加密你的字节码的东西也倾向于删除未使用的东西)。

但是我不建议这样做。你找到了一种鼓励自己保持代码测试的方法(很棒!)。但是,正如您所知,您选择的方式并不是那么好。将测试代码与代码本身分开有很多原因。

我要做的是(每次一节课):

1)咬紧牙关并制作一组并行的测试类 2)将之前有@Test的任何内容移动到新类中 3)移动任何阻止测试编译/运行的东西。

然后使用代码覆盖率工具(我喜欢Cobertura,但还有其他工具)可以让您直观地了解您的代码的测试量。再加上在运行代码之前编写测试的想法,你应该做得很好。

基本上这是一种非常有效的工作方式。如果您遵循编码和代码覆盖的方法,然后修复覆盖率较差的地方,您应该发现它就像测试代码在类中一样简单。这都是习惯 - 良好的习惯总比坏的好: - )