java 计算器 junit测试_Java中Junit4测试实例
Junit簡介
JUnit: JUnit是一個Java語言的單元測試框架。
單元測試:單元測試的目的不是證明你的程序是正確的,而是證明你的程序沒有錯誤
目前流行的版本3.8和4.0
Junit3.X:需要繼承于TestCase
Junit4.0:增加了annotation注解
測試方法
@Test
注意:JUnit推薦的做法是以test作為待測試的方法的開頭,這樣這些方法可以被自動找到并被測試。
斷言
@BeforeClass修飾的方法會在所有方法被調用前被執(zhí)行,而且該方法是靜態(tài)的,所以當測試類被加載后接著就會運行它, 而且在內(nèi)存中它只會存在一份實例,它比較適合加載配置文件。
@AfterClass所修飾的方法通常用來對資源的清理,如關閉數(shù)據(jù)庫的連接。
@Before和@After會在每個測試方法的前后各執(zhí)行一次。
Failure一般由單元測試使用的斷言方法判斷失敗所引起的,這經(jīng)表示 測試點發(fā)現(xiàn)了問題 ,就是說程序輸出的結果和我們預期的不一樣。
error是由代碼異常引起的,它可以產(chǎn)生于測試代碼本身的錯誤,也可以是被測試代碼中的一個隱藏的bug。
測試用例不是用來證明你是對的,而是用來證明你沒有錯。
最恐怖的bug是邏輯bug.
最佳實踐方式
1.測試方法上必須使用@Test進行修飾
2.測試方法必須使用public void 進行修飾,不能帶任何的參數(shù)
3.新建一個源代碼目錄來存放我們的測試代碼
4.測試類的包應該和被測試類保持一致
5.測試單元中的每個方法必須可以獨立測試,測試方法間不能有任何的依賴
6.測試類使用Test作為類名的后綴(不是必須)
7.測試方法使用test作為方法名的前綴(不是必須)
常用注解
@Test(expected=ArithmeticException.class)
@Ignore("提示信息")//所修飾的測試方法會被測試運行器忽略
@Test(timeout=2000)//設置超時時間
@RunWith //可以更改測試運行器 org.junit.runner.Runner
junit4 assert類中的assert方法總結 :
junit中的assert方法全部放在Assert類中,總結一下junit類中assert方法的分類。
1.assertTrue/False([String message,]boolean condition);
判斷一個條件是true還是false。
2.fail([String message,]);
失敗,可以有消息,也可以沒有消息。
3.assertEquals([String message,]Object expected,Object actual);
判斷是否相等,可以指定輸出錯誤信息。
第一個參數(shù)是期望值,第二個參數(shù)是實際的值。
這個方法對各個變量有多種實現(xiàn)。在JDK1.5中基本一樣。
但是需要主意的是float和double最后面多一個delta的值,可能是誤差范圍
4.assertNotNull/Null([String message,]Object obj);
判讀一個對象是否非空(非空)。
5.assertSame/NotSame([String message,]Object expected,Object actual);
判斷兩個對象是否指向同一個對象。看內(nèi)存地址。
7.failNotSame/failNotEquals(String message, Object expected, Object actual)
當不指向同一個內(nèi)存地址或者不相等的時候,輸出錯誤信息。
注意信息是必須的,而且這個輸出是格式化過的。
一。先編寫實體類 MyCaculator.java
package com.entity;
//計算器類
public class MyCaculator {
public int add(int x,int y) ///加法
{
return x+y;
}
public int sub(int x,int y) //減法
{
return x-y;
}
public int multi(int x,int y) //乘法
{
return x*y;
}
public double div(int x,int y) //除法
{
return x/y;
}
}
二。編寫測試類 TestMyCaculator.java
package com.entity;
import org.junit.Test;
import junit.framework.Assert;
public class TestMyCaculator {
private static MyCaculator c = new MyCaculator(); // 創(chuàng)建對象
// 測試加法
@Test
public void testAdd() {
int result = c.add(10, 5);
Assert.assertEquals(15, result);
}
// 測試減法
@Test
public void testSub() {
int result = c.sub(10, 5);
Assert.assertEquals(5, result);
}
// 測試乘法
@Test
public void testMulti() {
int result = c.multi(10, 5);
Assert.assertEquals(50, result);
}
// 測試除法
@Test(expected = ArithmeticException.class)
public void testDiv() {
double result = c.div(10, 5); // 算數(shù)異常,這里拋出異常了。
// 這個斷言執(zhí)行不到。
Assert.assertEquals(3, result);// 這個斷言能通過嗎?
}
}
需要導入的jar包:junit-4.10.jar
總結
以上是生活随笔為你收集整理的java 计算器 junit测试_Java中Junit4测试实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java对象的访问定位_JVM创建对象及
- 下一篇: java 配置信息_[Java教程]ja