我有一個java類,做一個二進制和,我仍然試圖找出如何做單元測試,但我不知道該怎麼做。我已經搜索了一遍,我得到的最好的解釋是從維基百科的頁面:http://en.wikipedia.org/wiki/Unit_testing如何編寫單元測試?
但我仍然不確定如何做這個程序的測試。程序所做的基本上是2字節[]並添加它們並返回新的二進制數組。用Java編寫。我如何測試它?
我有一個java類,做一個二進制和,我仍然試圖找出如何做單元測試,但我不知道該怎麼做。我已經搜索了一遍,我得到的最好的解釋是從維基百科的頁面:http://en.wikipedia.org/wiki/Unit_testing如何編寫單元測試?
但我仍然不確定如何做這個程序的測試。程序所做的基本上是2字節[]並添加它們並返回新的二進制數組。用Java編寫。我如何測試它?
定義正常情況下的期望和期望的輸出,並輸入正確的輸入。
現在,通過聲明一個類實現測試,使用任何名字(通常是這樣TestAddingModule),以及testAdd方法添加到它(即類似下面):
assertEquals(expectedVal,calculatedVal)
。通過運行測試您的方法(在Eclipse中,右鍵單擊,選擇Run as→JUnit test)。
//for normal addition
@Test
public void testAdd1Plus1()
{
int x = 1 ; int y = 1;
assertEquals(2, myClass.add(x,y));
}
根據需要添加其它情況。
測試您的方法是否正常處理Null輸入(下面的示例)。
//if you are using 0 as default for null, make sure your class works in that case.
@Test
public void testAdd1Plus1()
{
int y = 1;
assertEquals(0, myClass.add(null,y));
}
1.是否需要@Test符號? 2.爲什麼不使用assertNotNull測試空輸入? 3.單元測試的結果在哪裏被捕獲?結果如何顯示給用戶? – user137717 2014-10-12 03:06:53
是的,'@ Test'表示法是必需的。這是爲了向單元測試運行者發出信號,表示此方法代表單元測試並應執行。沒有用'@ Test'註解的方法不會被測試運行器執行。 – 2014-10-23 11:14:15
這是一個非常通用的問題,有很多的方法可以回答。
如果您想使用JUnit創建測試,您需要創建您的測試用例類,然後創建單個測試方法來測試您的類/模塊在測試下的特定功能(單個測試用例類通常與單個「生產「類),並在這些方法內部執行各種操作,並將結果與正確的結果進行比較。嘗試儘可能多地覆蓋角落案例尤爲重要。
在你的具體的例子,例如,您可以測試以下:
要驗證結果,可以使用org.junit.Assert類中的各種assertXXX方法(爲了方便起見,您可以執行'import static org.junit.Assert。*')。這些方法測試一個特定的條件,如果不驗證(通過特定的消息,可選),則測試失敗。你的情況
例TestCase類(沒有定義的方法內容):
import static org.junit.Assert.*;
public class AdditionTests {
@Test
public void testSimpleAddition() { ... }
@Test
public void testPositiveNegativeAddition() { ... }
@Test
public void testNegativePositiveAddition() { ... }
@Test
public void testNegativeAddition() { ... }
@Test
public void testOverflow() { ... }
}
如果您不是用來編寫單元測試,而是通過寫即席測試,你再驗證測試代碼「可視化「(例如,您編寫了一個簡單的主要方法,接受使用鍵盤輸入的參數,然後打印出結果 - 然後您繼續輸入值並驗證結果是否正確),然後您可以開始編寫這樣的測試採用上面的格式,並使用正確的assertXXX方法驗證結果,而不是手動執行。這樣,如果您必須進行手動測試,您可以更輕鬆地重新運行測試。
就像@CoolBeans提到的那樣,看看jUnit。最後,如果您真的想了解更多關於測試和測試驅動開發(TDD)的信息,我建議您閱讀以下書籍: Kent Beck:Test-Driven Development By Example。
爲了使單元測試爲您的項目,請按照(爲了寫這個測試我使用Eclipse)下列步驟操作:
1-點擊新建 - > Java項目。
2-寫下你的項目名稱,並單擊Finish。
3-把點擊你的項目。然後,點擊New - > Class。
4-寫下你的類名,然後點擊完成。
然後,完成類是這樣的:
public class Math {
int a, b;
Math(int a, int b) {
this.a = a;
this.b = b;
}
public int add() {
return a + b;
}
}
5-點擊文件 - >新建 - > JUnit測試案例。
6-檢查設置(),然後點擊完成。 SetUp()將是您初始化測試的地方。
7單擊OK。
8在這裏,我簡單地增加7和10。所以,我希望答案是17。完成您的測試課程,如下所示:
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class MathTest {
Math math;
@Before
public void setUp() throws Exception {
math = new Math(7, 10);
}
@Test
public void testAdd() {
Assert.assertEquals(17, math.add());
}
}
9-在包資源管理器中單擊您的測試類,然後單擊Run as - > JUnit Test。
10-這是測試的結果。
我希望它能幫助。
public class FirtJunit {
@BeforeClass
public static void startUp() {
System.out.println("BeforeClass");
}
@AfterClass
public static void shutDown() {
System.out.println("AfterClass");
}
@Before
public void setup() {
System.out.println("Before");
}
@After
public void tearDown() {
System.out.println("After");
}
@Test
public void mul() {
System.out.println("Test for mul");
}
@Test
public void div() {
System.out.println("Test for div");
}
}
您可以使用像[jUnit](http://www.junit.org/)這樣的工具併爲您的java類編寫測試用例(測試方法)。然後調用jUnit測試作爲構建過程的一部分(ant/maven)。使用jUnit並不難,最棘手的部分是想出儘可能多的測試場景,以便您能夠及早且經常地捕獲錯誤。 – CoolBeans 2012-01-05 23:46:47