![](/img/trans.png)
[英]How do I use JUnit to test the getter and setter methods of an ArrayList?
[英]How to test setter in JUnit?
我正在研究 JUnit 測試。 我想在 JUnit 中測試 getter 和 setter,但它不起作用。 這是第一個 class。
public class Practice {
private String name;
public Practice(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
這是第二個 class。
import java.util.ArrayList;
public class Practice2 {
private ArrayList<Practice> practice;
public Practice2() {
this.practice = new ArrayList<Practice>();
}
public ArrayList<Practice> getPractice() {
return this.practice;
}
public void setPractice(ArrayList<Practice> practice) {
this.practice = practice;
}
}
setPractice的參數是ArrayList,所以我把Practice class的object放在參數里面,但是卻顯示錯誤。
import org.junit.jupiter.api.Test;
public class testGetterAndSetter {
@Test
public void testSetter() {
Practice2 aaa = new Practice2();
Practice bbb = new Practice("Hello");
aaa.setPractice(bbb.setName("A"));
}
}
我需要如何更改以測試二傳手,我該如何測試?
問題出在這里:
aaa.setPractice(bbb.setName("A"));
setPractice()
需要ArrayList
的參數,但bbb.setName("A")
返回void
。
除非您的 getter 和 setter 中有非常復雜的邏輯(絕對不是這種情況),否則對它們進行單元測試是矯枉過正、浪費時間和在執行它們時浪費計算機資源。
而是專注於您的業務邏輯。 專注於邏輯不那么簡單的類,這是應用程序的核心。 少關注實現 100% 的測試覆蓋率,多關注徹底測試應用程序的主要部分。
您通常會結合測試相應的 getter 來測試 setter。
設置一個值,然后獲取它,看看你得到的是不是你輸入的。
當然,這樣的測試是如此微不足道,很多人只是忽略了它,但我存在於一個測試覆蓋率非常高的環境中(你永遠不知道是否有人在 setter 中打錯了……)所以這是一個包含它們是個好主意(當然,除非你有像 Lombok 這樣的東西,它可以為你即時生成 getter 和 setter)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.