簡體   English   中英

JUnit測試-類調用其他類中的方法

[英]JUnit Test - Class invokes methods in other class

我有一個有方法的職業球員

 feedPet(Pet p1, Food f1){
 p1.eat(f1) 
 }

因此feedPet調用寵物的eat方法,然后eat方法調整寵物的飢餓程度。

為了測試這一點,我需要在我的jUnit測試用例中創建一個玩家和食物對象。

然后,我用一個簡單的方法測試

 assertEquals(p1.getHunger,3);

p1是我在播放器測試用例中創建的寵物對象。

我的問題是,我在做什么合適? 我可以正確測試我的播放器類嗎?

真的可以測試寵物的eat方法是否有效,但我還需要檢查feedPet方法是否也適用於玩家。

任何想法或建議,不勝感激。

假設您的測試看起來像這樣

@Test
public void player_should_feed_a_pet() {
    Food f1 = givenFoodWithHungerReductionOf(1);
    Pet p1 = givenPetWithHunger(4);
    player.feedPet(p1, f1);
    assertEquals(p1.getHunger(), 3);
}

這是一個很好的測試。 您並不是真正測試Pet.eat()方法,而是PlayerPet之間的正確交互。

您可能還需要針對Pet類的單獨測試,以涵蓋更多案例。

理想情況下,您應該創建兩個測試文件-一個用於測試其eat方法的Pet類,另一個用於測試feedPet方法的播放器類。

當你寫

assertEquals(p1.getHunger,3);

我希望飢餓是在寵物類的eat方法下設置的實例變量,按照您的期望,該變量為3。

暫無
暫無

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

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