JUnit单元测试--IntelliJ IDEA
單元測(cè)試的基本使用
一、環(huán)境配置
? ? ?使用idea IDE 進(jìn)行單元測(cè)試,首先需要安裝JUnit 插件。
? ? ? ? ? 1.安裝JUnit插件步驟
? ? ? ? ? ? ? File-->settings-->Plguins-->Browse repositories-->輸入JUnit-->選擇JUnit Generator V2.0安裝。
? ? ? ? ? 2.使用JUnit插件
? ? ? ? ? ? ?在需要進(jìn)行單元測(cè)試的類中,使用快捷鍵alt+insert,選擇JUnit test,選擇JUnit4。
二、單元測(cè)試
代碼Demo:
@Testpublic void testAdd() {assertEquals(2, new UserDao().add(1, 1));}1>注意事項(xiàng):
1、測(cè)試方法上面必須使用@Test注解進(jìn)行修飾。
2、測(cè)試方法必須使用public void 進(jìn)行修飾,不能帶有任何參數(shù)。
3、新建一個(gè)源代碼目錄用來存放測(cè)試代碼。
4、測(cè)試類的包應(yīng)該與被測(cè)試類的包保持一致。
5、測(cè)試單元中的每一個(gè)方法必須獨(dú)立測(cè)試,每個(gè)測(cè)試方法之間不能有依賴。
6、測(cè)試類使用Test做為類名的后綴(非必要)。
7、測(cè)試方法使用test作為方法名的前綴(非必要)。
2>錯(cuò)誤解析:
1、Failure 一般是單元測(cè)試使用的斷言方法判斷失敗引起,說明預(yù)期結(jié)果和程序運(yùn)行結(jié)果不一致。
2、error 是有代碼異常引起的,他產(chǎn)生于測(cè)試代碼本身中的Bug。
3、測(cè)試用例是不是用來證明你是對(duì)的,而是用來證明你沒有錯(cuò)。
3>測(cè)試流程:
代碼Demo:
@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@AfterClasspublic static void setUpAfterClass() throws Exception {}@Beforepublic void before() throws Exception {}@Afterpublic void after() throws Exception {}1、@BeforeClass所修飾的方法在所有方法加載前執(zhí)行,而且他是靜態(tài)的在類加載后就會(huì)執(zhí)行該方法,
?在內(nèi)存中只有一份實(shí)例,適合用來加載配置文件。
2、@AfterClass所修飾的方法在所有方法執(zhí)行完畢之后執(zhí)行,通常用來進(jìn)行資源清理,例如關(guān)閉數(shù)據(jù)庫連接。
3、@Before和@After在每個(gè)測(cè)試方法執(zhí)行前都會(huì)執(zhí)行一次。
4>常用注解
1、@Test(excepted=XX.class) 在運(yùn)行時(shí)忽略某個(gè)異常。
2、@Test(timeout=毫秒) 允許程序運(yùn)行的時(shí)間。
3、@Ignore 所修飾的方法被測(cè)試器忽略。
4、RunWith 可以修改測(cè)試運(yùn)行器 org.junit.runner.Runner
5>測(cè)試套件
? 測(cè)試套件是組織測(cè)試類一起運(yùn)行的測(cè)試類。具體如下:
代碼Demo:
@RunWith(Suite.class) @Suite.SuiteClasses({UserTest1,UserTest2,UserTest3}) public class SuiteTest{}注意事項(xiàng):
1、作為測(cè)試套件的入口類,類中不能包含任何方法。
2、更改測(cè)試運(yùn)行器Suite.class。
3、將需要運(yùn)行的測(cè)試類放入Suite.SuiteClasses({})的數(shù)組中。
6>參數(shù)化設(shè)置
需要測(cè)試的僅僅是測(cè)試數(shù)據(jù),代碼結(jié)構(gòu)是不變的,只需要更改測(cè)試數(shù)據(jù)。
代碼Demo:
@RunWith(Parameterized.class) public class parameterTest {int expected = 0;int input1 = 0;int input2 = 0;@Parameterspublic static Collection<Object[]> t() {return Arrays.asList(new Object[][]{{3,1,2},{5,2,3}});}public parameterTest(int expected,int input1,int input2) {this.expected = expected;this.input1 = input1;this.input2 = input2;}@Testpublic void testAdd() {assertEquals(expected, UserDao.add(input1,input2));}}具體步驟:
1、更改默認(rèn)的測(cè)試運(yùn)行器為@RunWith(Parameterized.class)。
2、聲明變量來存放預(yù)期值和測(cè)試值。
3、聲明一個(gè)返回值為Collection的公共靜態(tài)方法,并用@Parameters修飾。
4、為測(cè)試類聲明一個(gè)帶有參數(shù)的公共構(gòu)造函數(shù),并在其中為他聲明變量賦值。
以上為基于IntelliJ IDEA 進(jìn)行的單元測(cè)試。
?
轉(zhuǎn)載鏈接:http://www.cnblogs.com/huaxingtianxia/p/5563111.html
轉(zhuǎn)載于:https://www.cnblogs.com/luohengstudy/p/7681835.html
總結(jié)
以上是生活随笔為你收集整理的JUnit单元测试--IntelliJ IDEA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux使用freetds 连接连远程
- 下一篇: 网络对抗技术 实验报告 三