簡體   English   中英

Junit測試方法

[英]Junit Test Method

我一直對Junit中的方法感到困惑。

  1. 如果有人問我是否可以在Junit中將測試方法設置為私有/受保護,那么他是在談論該方法應該以test還是Junit中的setup(),teardown()之類的任何其他方法開頭。

  2. Junit方法的返回類型是什么。 所以我一直看到返回類型使用為Void,所以我們可以更改返回類型嗎?

  3. 現在有時會出現問題,例如我可以使用Junit測試Private方法。 因此,據我所知,默認情況下,Junit會調用以test開頭的方法,它應該是Public,然后只能是Public。它將可以使用Junit在類外部進行調用。 因此,如果我將測試方法聲明為私有,那么Junit將如何調用它或在類外對其進行測試。

1)您的測試方法應公開。

2)返回類型始終為空。

3)您不測試私有方法,而是測試類中的公共方法,這大概會在您的私有方法中調用邏輯。 您也應該嘗試在這些私有方法中涵蓋所有代碼分支。

來自org.junit.Test注釋文檔

Test注釋告訴JUnit,它所附加的public void方法可以作為測試用例運行

對於測試私有方法,建議將它們設置為受保護或受包保護。 然后,您可以創建一個覆蓋該方法的子類並對其進行測試。

我已經看到很多帖子斷然地表示您不得測試私有方法。 我無法想象沒有那么有用的拘束。 如果您試圖重構代碼,您和您周圍的每個人都有義務創建一組測試,以確保在甚至開始更改代碼之前就保留了該功能。 正確解決了回歸問題之后,您就可以開始重構/重新測試/重構了。

同樣,內部方法通常是完成故障識別或恢復的地方。 測試這些方法需要對數據進行適當的防火牆保護,並識別“不可能”的情況。 還應檢查恢復操作,以確保它們也處理“不可能”的情況。

使用反射來測試私有方法是最后的選擇,但是如果您無法更改被測類或您有管理部門的命令,則可能有必要。 “不良做法”是您違反封裝。 但是,封裝僅與黑盒測試有關。 白盒測試的過程涉及找出所有代碼是否都能正常工作,而不僅僅是可見的東西。

暫無
暫無

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

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