我正在使用驱动程序类执行有关执行服务器测试用例的教程. Eclipse错误窗格显示错误消息:java.lang.Exception:没有runnable方法.发生错误消息时 驱动程序类试图运行exceptionTesting类. 基于p
驱动程序类试图运行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 { }
exceptionTesting类
import org.junit.*; import org.junit.Test; public class exceptionTesting { public class junitTest2{ @Test (expected = ArithmeticException.class) public void divisionWithException(){ int i = 1/0; } } }问题是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.