代码之家  ›  专栏  ›  技术社区  ›  Lydon Ch

从Java类中删除测试代码

  •  0
  • Lydon Ch  · 技术社区  · 15 年前

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

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

    谢谢

    3 回复  |  直到 15 年前
        1
  •  2
  •   Sudhir Jonathan    15 年前

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

    1. 您也许可以去掉测试,但是引用测试库的所有导入呢?
    2. 测试可能调用的任何私有方法呢?它们不会被标记为 @Test 是的。
    3. 为什么一开始就这么麻烦?每个ide都有自动生成测试类的工具和在它们之间切换的快捷方式。
    4. 如果测试注释意外应用于某个类方法,会怎么样?
    5. 如果你的一个类方法意外地调用了一个测试方法怎么办?

    这些只是我能想到的一些原因…为什么不先回避这个问题呢?

        2
  •  0
  •   Stephen C    15 年前

    据我所知,没有专门的工具来完成这项任务。

    你可能需要用你最喜欢的文本编辑器/ide来“轻轻松松”地进行修改。(也许这个练习会教你更加注意好的做法/好的风格……)

        3
  •  0
  •   TofuBeer    15 年前

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

    不过,我不建议这样做。很好,您找到了一种方法来鼓励自己继续测试代码(非常正确!)然而,正如你所发现的,你选择的方式并不是那么好。将测试代码与代码本身分开有很多原因。

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

    1)咬紧牙关,做一组平行的测试类 2)将任何具有@test的内容移到新类中 3)移到任何其他阻止测试编译/运行的地方。

    然后使用代码覆盖工具(我喜欢 Cobertura 但也有其他的方法)让你看到你的代码有多少是经过测试的。除此之外,在运行代码之前编写测试的想法应该做得很好。

    基本上,这是一种非常明确的工作方式。如果你遵循编码和代码覆盖的规则,然后修复覆盖率低的地方,你应该会发现它就像测试代码在类中一样简单。这都是习惯——好习惯总比坏习惯好:-)