我有一个具有方法的类播放器
feedPet(Pet p1, Food f1){
p1.eat(f1)
}
所以feedPet调用宠物吃法,然后吃法调整宠物的饥饿程度。
为了测试这个,我需要在我的jUnit测试用例中创建一个播放器和食物对象。
然后我测试它是否使用简单的
assertEquals(p1.getHunger,3);
p1是我在玩家测试用例中创建的宠物对象。
我的问题是,我正在做的是什么?我正在测试我的播放器类吗?
真的测试宠物的吃法是否有效,但我还需要检查feedPet方法是否也适用于播放器。
非常感谢任何想法或建议。
答案 0 :(得分:3)
假设您的测试看起来像那样
@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
课程进行单独测试以涵盖更多案例。
答案 1 :(得分:1)
理想情况下,您应该创建两个测试文件 - 一个用于测试其eat方法的Pet类,另一个用于测试feedPet方法的玩家类。
写作时
assertEquals(p1.getHunger,3);
我希望饥饿是在宠物类的eat方法下设置的实例变量,根据你的预期是3.如果是这样的话,你就是在正确的道路上