我有一个类播放器,它有一个方法
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
类进行单独的测试以涵盖更多情况。
关于java - JUnit 测试 - 类调用其他类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352324/