4

我正在做一个关于使用驱动程序类执行服务器测试用例的教程。Eclipse 错误窗格显示错误消息: java.lang.Exception: No runnable methods。驱动程序类尝试运行 exceptionTesting 类时出现错误消息。

基于 pm 这个帖子: java.lang.exception no runnable methods junit。似乎应该在测试类中使用 @Test 注释,或者将 Junit Jar 文件更新到最新版本将解决该问题。

Junit Jar 文件版本:4.11

请检查我的代码并告诉我应该做哪些修改以避免错误消息。谢谢!

司机等级:

import org.junit.runner.*;
import org.junit.runners.Suite;

 @RunWith(Suite.class)
 @Suite.SuiteClasses({
     basicAnnotation.class,
     personTest.class,
     exceptionTesting.class
 })
public class UnitTestDriver {

} 

异常测试类

import org.junit.*;
import org.junit.Test;


public class exceptionTesting 
{
  public class junitTest2{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }

  }
}
4

1 回答 1

4

问题是 junitTest2 嵌套在 exceptionTesting 中。您有两种选择来解决它:

1)摆脱在顶级类中进行测试的内部类:

import org.junit.*;
import org.junit.Test;


public class exceptionTesting 
{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }
}

2) 让您的顶级类指定测试是封闭的,并使您的内部类静态:

import org.junit.*;
import org.junit.Test;

@RunWith(Enclosed.class)
public class exceptionTesting 
{
  public static class junitTest2{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }

  }
}

除非您有某些理由需要内部类,否则 #1 是更好的选择。另请注意,在 Java 中,约定是以大写名称开头的类。所以exceptionTesting会变成ExceptionTesting。

于 2013-06-01T17:46:47.407 回答