簡體   English   中英

如何在 JUnit 中測試設置器?

[英]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.

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