亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Android單元測試之JUnit
作者:網絡轉載 發布時間:[ 2016/12/13 11:30:46 ] 推薦標簽:單元測試 Junit Android

  在《初入Android單元測試》中我們對Android單元測試有了一個大概的了解,我們直接進入項目測試環節。直接用代碼來學習單元測試。
  我們寫單元測試,一般都會用到一個或多個單元測試框架,在這里,我們介紹一下JUnit4這個測試框架。這是Java界用的廣泛,也是基礎的一個框架,其他的很多框架,包括我們后面會看到的Robolectric,都是基于或兼容JUnit4的。
  在Android工程中引入JUnit
  在Android項目里面使用JUnit是很簡單的,你只需要將JUnit這個library加到你的dependencies里面。
  testCompile 'junit:junit:4.12'
  當然,如果你是通過Android Studio來創建的項目,那么這個dependency默認是加上了的,所以你甚至這步都可以省略。
  JUnit基本的使用
  當我們通過Android Studio創建好項目之后,我們在src/androidTest/java下,會看到自動生成了的單元測試代碼


  雖然代碼很少,但是在看代碼之前,我們也先來學習一下JUnit中的一些知識點。
  @Test : 通過給某個方法添加這個注解,JUnit會把它當作是一個需要測試的方法。
  assertEquals(expected, actual):驗證expected的值跟actual是一樣的,如果是一樣的話,測試通過,不然的話,測試失敗。
  可以看到自動生成的代碼中有一個useAppContext()的方法,該方法上面也標注了@Test注解,所以該方法是一個可以測試的方法,里面只有兩行代碼,它的作用是判斷當前測試的app包名是否等于"com.whyalwaysmea.junit"(當然,你的代碼此處應該是你自己的包名)
  點擊左側的運行按鈕,可以直接對該方法進行測試運行了。如果包名和字符串相等,那么測試方法會運行成功,如果包名和字符串不相等,那么測試方法會報錯,具體的可以看所打印出來的log
  JUnit的更多方法
  更多的注解:
  @Before: 如果一個方法被@Before修飾過了,那么在每個測試方法調用之前,這個方法都會得到調用。
  @After: 每個測試方法運行結束之后,會運行的方法。比如一個測試文件操作的類,那么在它的測試類中,可能@Before里面需要去打開一個文件,而每個測試方法運行結束之后,都需要去close這個文件。這個時候可以把文件close的操作放在@After里面,讓它自動去執行。
  類似的,還有@BeforeClass和@AfterClass。@BeforeClass的作用是,在跑一個測試類的所有測試方法之前,會執行一次被@BeforeClass修飾的方法,執行完所有測試方法之后,會執行一遍被@AfterClass修飾的方法。
  @Ignore: 很多時候,因為某些原因(比如正式代碼還沒有實現等),我們可能想讓JUnit忽略某些方法,讓它在跑所有測試方法的時候不要跑這個測試方法。要達到這個目的也很簡單,只需要在要被忽略的測試方法前面加上@Ignore可以了
  更多驗證:
  assertEquals(expected, actual, tolerance)
  這里傳入的expected和actual是float或double類型的,大家知道計算機表示浮點型數據都有一定的偏差,所以哪怕理論上他們是相等的,但是用計算機表示出來則可能不是,所以這里運行傳入一個偏差值。如果兩個數的差異在這個偏差值之內,則測試通過,否者測試失敗。
  assertTrue(boolean condition)
  驗證contidion的值是true
  assertFalse(boolean condition)
  驗證contidion的值是false
  assertNull(Object obj)
  驗證obj的值是null
  assertNotNull(Object obj)
  驗證obj的值不是null
  assertSame(expected, actual)
  驗證expected和actual是同一個對象,即指向同一個對象
  assertNotSame(expected, actual)
  驗證expected和actual不是同一個對象,即指向不同的對象
  注意:上面的每一個方法,都有一個重載的方法,可以在前面加一個String類型的參數,表示如果驗證失敗的話,將用這個字符串作為失敗的結果報告。
  比如:
  assertEquals("Current user Id should be 1", 1, currentUser.id());
  當currentUser.id()的值不是1的時候,在結果報道里面將顯示"Current user Id should be 1",這樣可以讓測試結果更具有可讀性,更清楚錯誤的原因是什么。
  總結
  該篇主要介紹了JUnit的一些基本使用,當然他的功能不僅于此,畢竟他是java項目中使用廣泛的單元測試框架。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲码和乱人伦中文一区 | chinesehihi国产| 污在线| 97色偷偷 | 日韩中文字幕第一页 | 98bb国产精品视频 | 视频一区 日韩 | 美女一级大黄录像一片 | a级高清观看视频在线看 | 精品国产成人a在线观看 | 国产一精品一aⅴ一免费 | 成人a级高清视频在线观看 成人a大片在线观看 | 国产精品午夜高清在线观看 | 国产一区在线观看视频 | 久久精品视频网 | 亚洲国产天堂在线mv网站 | 久一在线 | 直接观看黄网站免费视频 | 91精品福利一区二区三区野战 | ass日本医生pics | 男人把女人下面桶爽的视频 | 免费黄色欧美视频 | 免费特黄一级欧美大片在线看 | 国产综合视频在线观看 | 天天操人人 | 亚洲成年网 | 欧美一区精品二区三区 | 欧美日韩中文一区二区三区 | 欧洲最暴性xxxⅹ | 性欧美高清精品video | 欧美精品99| 日本xxxxx高清 | 欧美日韩看片 | 97精品伊人久久久大香线焦 | 欧美黑白配性xxxxx | 免费视频精品一区二区 | 成人网18免费网站 | 香蕉视频国产精品人 | 中国xxxx视频播放50 | 国产成人精品永久免费视频 | 高清一级毛片一本到免费观看 |