[英]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()
方法,而是Player
和Pet
之間的正確交互。
您可能還需要針對Pet
類的單獨測試,以涵蓋更多案例。
理想情況下,您應該創建兩個測試文件-一個用於測試其eat方法的Pet類,另一個用於測試feedPet方法的播放器類。
當你寫
assertEquals(p1.getHunger,3);
我希望飢餓是在寵物類的eat方法下設置的實例變量,按照您的期望,該變量為3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.