Java 为什么赢了';t jUnit 4是否找到预期的异常?

Java 为什么赢了';t jUnit 4是否找到预期的异常?,java,junit,junit4,Java,Junit,Junit4,我设法理解了JUnit3.8,但老实说,即使在我阅读了超过45分钟的文档之后,我也不知道JUnit4是如何工作的。我对注释没有问题,但对运行测试有问题。 例如,junit在这个小示例中找不到我期望的异常: 输出: .E Time: 0,011 There was 1 error: 1) testTest(junittests.TestTestCase)java.util.InputMismatchException Main.java TestRunner.run(TestTestCa

我设法理解了JUnit3.8,但老实说,即使在我阅读了超过45分钟的文档之后,我也不知道JUnit4是如何工作的。我对注释没有问题,但对运行测试有问题。 例如,junit在这个小示例中找不到我期望的异常:

输出:

.E
Time: 0,011
There was 1 error:
1)     testTest(junittests.TestTestCase)java.util.InputMismatchException
Main.java

TestRunner.run(TestTestCase.class);
DemoClass.java

import java.util.InputMismatchException;

public class DemoClass {
    public void test() {
        throw new InputMismatchException();
    }
}
testcase.java

import junit.framework.TestCase;
import org.junit.Before;

import java.util.InputMismatchException;

public class TestTestCase extends TestCase {
    private DemoClass inst;
    @Before
    public void setUp() {
        inst = new DemoClass();
    }
    @org.junit.Test(expected = InputMismatchException.class)
    public void testTest() {
        inst.test();
    }
}
我真的不知道如何使用它。提前多谢

像这样试试:

你的测试课

public class DemoClass {
    public void test() {
        throw new InputMismatchException();
    }
}
同一包中的测试类:

public class DemoClassTest {
    @Test(expected = InputMismatchException.class)
    public void testTest() {
        new DemoClass().test();
    }
}

我可以在IntelliJ中运行一整天。

不要扩展TestCase。不要使用junit.framework包中的任何类。他们能够运行遗留的JUnit3测试。它们不应该在JUnit4中使用。可以确认,可以重新创建问题。删除
扩展测试用例
解决了它。大家好!当我删除
extenstedtestcase
TestRunner.run(testcase.class)时生成错误。“未找到适合运行的方法”。我想我需要另一个Runner类,但我总是使用EclipseJUnit启动器。但建议使用
org.junit.runner.JUnitCore
。我尝试了
JUnitCore.runClasses(DemoClassTest.class)
,它返回一个
结果
对象,您可以查询该对象的信息。非常感谢!这是否意味着在JUnit4中我不再使用textui/awtui/swingui?