伊莉討論區

標題: JUnit框架要如何使用在測試中 [打印本頁]

作者: charles310    時間: 2018-3-1 11:48 PM     標題: JUnit框架要如何使用在測試中

提示: 作者被禁止或刪除 內容自動屏蔽
作者: johnwanz    時間: 2018-3-4 10:13 PM

這裡面有兩個部分, 一個是, unit test屬於測試的哪個階層/部分, 做test需要注意哪些. 先知道有什麼, 會比較方便. 不過, 一般都是邊做邊體悟, 也是可以, 辛苦一點.

JUnit, 其實也就只是測試框架的語法而已. 你需要搭配unit test要注意那些事情, 才會知道要怎麼去應用. 單一語法的使用與說明, 網路上是很容易查到的.

同時, 可以上網查JUnit的重要詞語說明, 再搭配一些介紹測試的文章, 會比較好了解.
* test suit 包含 test case
* setup 測試之前做什麼事, ex: 準備那些測試要用的資料(變數)
* teardown 測試執行完後的收尾, ex: 應該有哪些資源要釋放
* 每一個test case運行, 會經過 setup -> test case -> teardown
* test suit可用來組織組合多個test case

網路上不少文章, 各有不同可以吸收的部分, 多看一些會比較容易理解.

這邊提供一個參考網站.
開源框架:JUnit Gossip

個人JUnit很少用, 可能有部分錯誤, 只是希望給予多一些不同角度的想法. 若有明確不懂的使用情境或範例, 還是得要把題目描述清楚, 其他人比較好幫忙.
作者: kwj    時間: 2018-3-13 06:09 PM

「因為學業的關係,想寫一些跟測試相關的軟體程式」

這句話有點微妙,具體來說試想要怎麼樣呢?

JUnit 顧名思義是用來做 Unit Test 的
也就是你寫好了一些程式碼,但你想要對這些程式碼做些自動化的測試
以確保所有你認為可能會造成程式碼出錯的因素都會被測試到
這樣一來,未來你再繼續追加新的程式碼時
也能透過這些自動化測試,確保之前寫好的程式碼的功能沒有因此受到影響。

換句話說,JUnit 基本上是用來測試已經寫好的程式碼的套件。
這跟樓主本來對於 JUnit 的想像是相同的嗎?

作者: charles310    時間: 2018-3-19 11:39 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kwj    時間: 2018-3-20 01:10 AM

本帖最後由 kwj 於 2018-3-20 01:14 AM 編輯
charles310 發表於 2018-3-19 11:39 PM
是的,就是拿來做Unit Test用,只是我對於框架的使用不太熟系,

還不知道要從哪邊把code丟進去進行測試用 ...

那麼...一般來說,Java 專案會把資料夾分成這種樣式:


前者是放程式主體,後者則是放測試的程式碼。

舉例來說,如果我開發一段程式,位置是放在 src/main/java/com/example/MyClass.java
  1. package com.example;

  2. public class MyClass {
  3.   public static int sum (int a, int b) {
  4.     return a + b;
  5.   }
  6. }
複製代碼
那麼對應地,就可以有的用來測試 MyClass 的程式放在 src/test/java/com/example/MyClassTest.java
  1. package com.example;

  2. import org.junit.jupiter.api.Assertions;
  3. import org.junit.jupiter.api.Test;

  4. public class MyClassTest {
  5.   @Test
  6.   public void testSum () {
  7.     int actualResult = MyClass.sum(1, 2);
  8.     Assertions.assertEquals(3, actualResult);
  9.   }
  10. }
複製代碼
這裡 testSum() 這個單元測試,就是預期要測試 MyClass.sum() 這個方法
然後測試的內容是輸入 1 和 2 給 MyClass.sum(),獲得一個結果
接著檢查結果是不是 3,如果不是,JUnit 就會回報測試失敗。

這些其實網路上有蠻多類似的教學,不知道樓主看不懂或者不知道如何上手的是哪個部份的問題?

作者: codewice    時間: 2018-3-20 01:13 AM

前面寫軟體的人,用的是什麼開發環境呢?

StackOverflow 上面一篇「How to run JUnit test cases from the command line」講了最基本的執行方法:跑起一個 JUnit 的 jar 檔然後傳入欲測試的目標,JUnit 就會根據它自己設計的邏輯去跑測試了。

不過現在很多編譯工具或是 IDE 已經有很好的整合,好比說 gradle 的編譯環境,只要把 junit 的 dependency 加進去,很簡單就能跑起來。

描述一下你的開發環境,比較容易幫忙想解答




歡迎光臨 伊莉討論區 (http://www313.eyny.com/) Powered by Discuz!