簡體   English   中英

單元測試時應使用哪些數據/參數源?

[英]What sources of data/parameters should I use when Unit testing?

我正在跨大型系統執行單元測試,該系統由數百個不同的.java文件組成,所有文件均構成后端。

在我的單元測試中,我應該像其他方法一樣傳遞變量(在測試方法中調用方法),還是使用在測試方法中創建/聲明的值進行測試?

我認為我應該為測試方法專門提供值,因為它們是單元測試,並且我試圖單獨測試每個方法,但是我對此不確定。 我是否需要完全復制將上述數據提取到單元測試中的函數?

一般而言,您應該在測試本身中創建值,從而更好地隔離被測系統。 正如@James提到的,還有其他類型的測試,您可以將junit用於集成測試和單元測試。 但是,單元測試的核心是單元測試,適當的單元測試可以隔離被測系統。

更新以回應您的評論:

因此,例如,如果您有A類和B類:

public class A {
  private B b = new B();

  public void callB() {
    b.process(17);
    b.process(22);
  }
}

public class B {
  public void process(int n) {
    // do stuff with n
  }
}

您的B測試類可以簡單地實例化其自己的B並調用b.process(17)b.process(22)而無需任何對A的引用,也不需要子類化A。為了與B隔離地測試A,您需要一種可以將B替換為模擬的模擬機制。 這樣的測試僅使用模擬來驗證b.process已被17和22調用,而不用擔心這些調用會導致什么。

答案還是取決於。 :)

這取決於您要測試的內容。 如果您要對可能從其他函數或外部輸入返回參數的函數進行單元測試,那么我認為應該在測試中制造測試參數,以便可以測試各種情況和極端情況。

如果您要測試一個功能與其他功能或輸入之間的積分,則需要進行集成測試。 然后,您必須將不同的功能連接在一起,並使用上游輸入執行測試用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM