Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java类中删除测试代码_Java_Junit - Fatal编程技术网

从java类中删除测试代码

从java类中删除测试代码,java,junit,Java,Junit,有没有办法从我的Java类中剥离JUnit@Test代码。 此时,我将测试代码嵌入到与要测试的源代码相同的文件中 (是的,我知道这很糟糕,但这是我继续维护测试代码的动机) 我想从代码中剥离测试方法,构建二进制文件并部署 谢谢据我所知,没有专门的工具来完成这项任务 您可能需要“尽情享受”,并使用您最喜欢的文本编辑器/IDE艰难地进行更改。(也许这个练习会教你更多地注意好的做法/好的风格……不,我不知道你如何做到这一点,但我可以告诉你为什么你可能不想首先使用这种方法 您可能能够剥离测试,但是所有引用

有没有办法从我的Java类中剥离JUnit@Test代码。 此时,我将测试代码嵌入到与要测试的源代码相同的文件中 (是的,我知道这很糟糕,但这是我继续维护测试代码的动机)

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


谢谢

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


您可能需要“尽情享受”,并使用您最喜欢的文本编辑器/IDE艰难地进行更改。(也许这个练习会教你更多地注意好的做法/好的风格……

不,我不知道你如何做到这一点,但我可以告诉你为什么你可能不想首先使用这种方法

  • 您可能能够剥离测试,但是所有引用测试库的导入又如何呢
  • 那么测试可能调用的任何私有方法呢?它们不会被标记为
    @Test
  • 为什么一开始就要经历这些麻烦?每个IDE都有自动生成测试类的工具和在它们之间切换的快捷方式
  • 如果测试注释意外地应用于您的一个类方法,该怎么办
  • 如果您的一个类方法意外调用了一个测试方法怎么办
  • 这些只是我能想到的一些原因。。。为什么不从一开始就避免这个问题呢?

    有一些方法可以帮助您做到这一点(旨在加密字节码的东西也会删除未使用的东西)

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

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

    1) 咬紧牙关,创建一组用于测试的并行类 2) 将之前有@Test的任何内容移动到新类 3) 跳过任何阻止测试编译/运行的内容

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

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