2016-05-22 11 views
-1

JUnitのassertEqualsメソッドを使用して、私のクラスPlayerの名前属性をチェックする簡単なテストを行いたいと考えています。 JUnitテストを実行すると、警告が表示されて失敗します(AssertionFailedError:PlayerTestでテストが見つかりません)、何が間違っていますか?assertEqualsを使用するとJUnitテストで予期しないエラーが発生する

public class Player { 
    private String name; 
    private int id; 

    public Player(int id){ 
     this.setId(id); 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 
} 

public class PlayerTest extends TestCase { 

    @Test 
    public void NameTest(){ 
     Player player = new Player(1); 
     player.setName("Roberto"); 
     String name = "Roberto"; 
     assertEquals(name, player.getName()); 
    } 
} 
+0

** **警告は何ですか? –

+0

TestCaseが問題を引き起こしています。それを削除し、Assert.assertEquals(name、player.getName());を追加してみてください。それは動作するはずです。私はそれをテストしました。 –

答えて

2

私はあなたの代わりに、アノテーション駆動JUnitの4スタイルの(extends TestCaseを使用して)JUnitの3スタイルのテストケースを書いたためであると仮定します。

import junit.framework.TestCase; 


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


public class PlayerTest { 

    @Test 
    public void NameTest(){ 
     Player player = new Player(1); 
     player.setName("Roberto"); 
     String name= "Roberto"; 
     assertEquals(name,player.getName()); 
    } 

} 

編集:それはJUnitの-3スタイルで動作させるためスニルの回答を参照してくださいここで

はJUnitの4スタイルのテストは次のようになります。

0

関数名はTestCaseが実行するテスト関数であることを理解するためには「test」で始まる必要があります。 @Testアノテーションを削除します。

この場合、NameTest()testName()に変更してください。それが動作します。

関連する問題