2016-04-30 13 views
2

私はJunit 3.8を理解することができましたが、正直なところ私は45分以上書類を読んだ後でもjunit 4がどのように動作するか分かりません。注釈に問題はありませんが、のテストではを実行しています。 例えば、JUnitは、この小さな例では、私の予想される例外を見つけることができません。jUnit 4が予想される例外を見つけられないのはなぜですか?

出力:

.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(); 
    } 
} 

TestTestCaseを.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(); 
    } 
} 

私は実際にどのようにそれを使用する手がかりがありません。ありがとうございます!

あなたのテストクラス:

+5

TestCaseを拡張しないでください。 junit.frameworkパッケージのクラスを使用しないでください。従来のJUnit 3テストを実行できるようになっています。彼らはJUnit 4で使用すべきではありません。 –

+1

確認でき、問題を再現できました。 '' 'を展開するとTestCase''が解決しました。 –

+0

こんにちは! 'extends Test Case'を削除すると' TestRunner.run(TestTestCase.class);という行にエラーが発生します。 "適切な方法が見つからない"。私は別のランナークラスが必要だと思いますが、どれが1つですか? – phip1611

答えて

0

はこのようにそれを試してみてください。同じパッケージ内

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

Testクラス:

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

私はIntelliJの中のすべての日にこれを実行することができます。

関連する問題