java - 如何创建只能用于测试的方法

标签 java testing junit

是否有任何方法可以创建只能在 Junit 中使用的方法/承包商(仅用于测试目的)?

也许有注释?

最佳答案

对于仅用于测试的方法...为什么不将它们作为实际测试代码的一部分呢?至少在 Maven 等构建系统中,测试代码不包含在打包的 jar 中,并且仅作为源代码的一部分分发。从这个意义上说,它不能从普通类中调用,因为它根本不包含在最终的 .jar(或 .war)中。

我经常编写这样的方法来使我的测试代码更易于维护。

澄清一下:

src/
  main/
    java/
      my/package/
        MyClass.java <-- leave necessary protected accessors here
  test/
    java/
      my/package/
        MyClassTest.java <-- implement test-code here

并且在 MyClassTest...

public class MyClassTest {

   ...

   private static Foo doSomethingCoolButTesty(MyClass instance) {
       // access protected or package-private MyClass code here 
   }
}

MyClassTest.doSomethingCoolButTesty 将与主代码分开,显然只能用于测试代码。是的,它比将它作为主要代码的方法更丑陋一些,但我发现要付出合理的代价。

关于java - 如何创建只能用于测试的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44872697/

相关文章:

java - 将liferay主题java方法中设置的 session 对象获取到portlet doView()方法中

java - 有没有办法在这里创建模型而不重复代码?

来自文本文件的java 2D数组

java - 如何从 Java 中的文本文件打印多行?

testing - 在生产系统中测试账户和产品

java - 使用 JUnit 测试 Spring 安全性时如何删除 "ROLE_"前缀?

java - 如何使用 Junit 监视 Java 中的方法?

testing - Grails/Spock 如何测试特定约束是否失败?

maven - jmeter 插件 maven test-jar

java - 尝试使用 Spring 运行 jUnit 测试时出现 NoSuchFieldError