2017-07-26 78 views
-2

我有一些代碼,類似於:開始使用JUnit的,如何運行簡單的測試

public class Foo 
{ 
     private String Bar; 

     public Foo(String _bar) 
     { 
      Bar = new String(_bar); 
     } 

     public String getBar() { return Bar; } 

     @Override 
     public boolean equals(Object o) 
     { 
      if (o == this) return true; 
      if (!(o instanceof Foo)) return false; 

      Foo temp = (Foo)o; 
      if (Bar == null) return (Bar==temp.Bar); 
      return (Bar.equals(temp.Bar)); 
     } 

     @Override 
     public int hashCode() 
     { 
      return Objects.hash(this.Bar); 
     } 
} 

我想嘗試寫一個測試用例該類這將考驗我的所有方法。我也試圖瞭解suite()方法以及如何使用TestRunner。

我該如何開始做這件事?

編輯1:固定以上

錯誤此外,測試類

public class FooTest 
{ 
     private FooTest ft; 

     @Before 
     public void setUp() throws Exception 
     { 
      ft = new FooTest("baz"); 
     } 

     @Test 
     public void testGetFoo() 
     { 
      assertEquals(ft.getBar(),"baz"); 
     } 

     @Test 
     public void testEquals() 
     { 
      assertEquals(ft.equals(new Foo("baz")), true); 
      assertEquals(ft.equals(new String("no")),false); 
      assertEquals(ft.equals(ft), true); 
      assertEquals(ft.equals(null),false); 
     } 
} 

我也碰到過這個網站(http://users.csc.calpoly.edu/~djanzen/tdl/tddintro/helloworld/),這是非常有幫助的。但是,我有問題的代碼的AllTests.java在頁面上的部分,具體是:

public static junit.framework.Test suite() 
{ 
    return new JUnit4TestAdapter(AllTests.class); 
} 

在Eclipse中,我得到了以下錯誤消息:

The method JUnit4TestAdapter(Class<Foo>) is undefined for the type AllTests 

如何解決這個錯誤?

+1

結帳https://stackoverflow.com/documentation/junit/topics –

+0

謝謝你,這是一個很好的資源,但它很薄弱,並沒有什麼幫助的是理解我正在嘗試做什麼。 –

+0

@Héctor你需要從簡單的東西開始,並從那裏建立。嘗試尋找https://github.com/junit-team/junit4/wiki/Getting-started – chocksaway

回答

0

下面是一個簡單的JUnit測試,練習代碼:

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

public class FooTest { 
    @Test 
    public void testFooIsNotNull() { 
     Foo myFoo = new Foo("Bar"); 
     assertNotNull(myFoo); 
    } 

    @Test 
    public void testFooBarEqualsBar() { 
     Foo myFoo = new Foo("bar"); 
     assertEquals("bar", myFoo.getBar()); 
    } 

我測試的是myFoo不爲空,而「酒吧」等於myFoo.getBar()

我定你的代碼,所以等號超馳的工作:

import java.util.Objects; 

public class Foo { 

    private String Bar; 

    public Foo(String bar) { 
     Bar = new String(bar); 
    } 

    public String getBar() { 
     return Bar; 
    } 

    @Override 
    public boolean equals(Object o) { 
     if (o == this) 
      return true; 

     if (!(o instanceof Foo)) 
      return false; 

     Foo temp = (Foo)o; 
     if (Bar == null) 
      return (Bar==temp.Bar); 

     return (Bar.equals(temp.Bar)); 
    } 

    @Override 
    public int hashCode() { 
     return Objects.hash(this.Bar); 
    } 
} 

您的代碼需要進一步的工作。但簡單的單元測試工作。

相關問題