java - JUnit 测试器类在没有 main 方法的情况下运行。这是如何完成/可能的?

标签 java junit

比如这里...

import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class StaticCalculationTest {

   @Test
   public void addSubTest() {
      // assertEquals(String message, long expected, long actual)
      assertEquals("Error in add()!", 3, StaticCalculation.add(1, 2));
      assertEquals("Error in sub()!", 1, StaticCalculation.sub(2, 1));
   }

   @Test
   public void mulDivTest() {
      assertEquals("Error in mul()!", 6, StaticCalculation.mul(2, 3));
      // assertEquals(String message, double expected, double actual, double delta)
      assertEquals("Error in div()!", 0.5, StaticCalculation.div(1, 2), 1e-8);
   }
}

以上样本取自:http://www3.ntu.edu.sg/home/ehchua/programming/java/JUnit_Ant.html

最佳答案

如果没有 main(String[]) 方法,任何 Java 应用程序都无法运行。它是单一入口点。对于 JUnit 测试,此方法通常隐藏在插件后面。对于 Eclipse,这似乎是 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner。

在您发布的链接中,他们建议使用 java org.junit.runner.JUnitCore 来设置您的 @Test 带注释的方法和 Suites 并运行它们。以类似的方式,AntJUnitTask,它在某处(如果您查看其源代码)创建一个运行程序来运行您的测试。好像是JUnitTestRunner ,由于 Ant 任务,它实际上在自己的 JVM 中运行。

关于java - JUnit 测试器类在没有 main 方法的情况下运行。这是如何完成/可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259730/

相关文章:

java - 如何打印报告

java - 我可以调用具有 hibernate 条件的存储过程吗?

java - 当我尝试运行我的 junits 时出现 NoTestsRemainException

junit - 如何在为静态方法编写junit时从静态方法模拟实例方法调用?

java - 如何一次运行我所有的内部类 junit 测试

java - java中如何阻止一条语句执行,直到前一条语句完成?

java - 如何删除字符串中字符 ( 和 ) 之间的所有字母?

java - "Selector loop waiting on select"运行多个使用 wiremock stub 的测试用例时

java - 如果调用某个类的对象的方法,则 Mockito doReturn

java - 在同一个包中编译两个类