当前位置: 首页 > 知识库问答 >
问题:

为Void方法创建Junit测试

易刚捷
2023-03-14
public void eat(Food food){

mAmountOfEatenFood += food.eatFood(mNeededAmountOfFood - mAmountOfEatenFood);
if(mAmountOfEatenFood == mNeededAmountOfFood){
    System.out.println(mName + " has eaten " + mAmountOfEatenFood + " and will not be hungry for a while..");
    mAmountOfEatenFood = 0;
    mIsHungry = false;  
}else{
    System.out.println(mName + " has eaten " + mAmountOfEatenFood + " and is still hungry..");
    System.out.println("Needs= " + mNeededAmountOfFood);
    mIsHungry = true;
}

}

共有1个答案

蒋寒
2023-03-14

这个方法看起来改变了调用它的对象的状态,假设该对象名为FoodConsumer。

eat(Food)更改两个变量(MamountoFeatenFoodMishungry)的状态。
因此,要知道是否需要再次为该对象提供feed,需要使用Mishungry的getter方法。对于MamountoFeatenFood
eat(Food)的“明显”结果是如果对象仍然饥饿。

在测试方法中,您需要有一个FoodConsumer实例。因此,稍后在调用eat(Food)之后,可以像ismhunging()那样调用smth,并断言它是真还是假。此外,您还可以调用getMamountoFeatenFood()检查在吃了不足的食物后,它是否具有由food.eatfood(...)估计的适当价值。

为了稍微简化,您可以将eat(Food)更改为boolean(即使仅用于测试),并在为Mishungry设置相同的值后返回true/false。

接下来,一些我们现在看不到的魔法发生在:

food.eatFood(mNeededAmountOfFood - mAmountOfEatenFood)

如果这不是任何类型的库方法,并且您可以访问它,那么如果eatfood返回的值是好的,那么最好让测试转换。

if(mAmountOfEatenFood >= mNeededAmountOfFood){
 类似资料:
  • 问题内容: 我有一个充满void方法的Java类,我想进行一些单元测试以获得最大的代码覆盖率。 例如我有这种方法: 它的名字不好用是因为我翻译了代码以更好地理解。每种方法均会验证参数是否在某种程度上有效并且编写正确。 范例: 我的单元测试很好地涵盖了小的方法,因为我要求它们检查ErrorFile是否包含错误消息,但是我看不到如何测试方法checkIfValidElements,它什么也不返回或什么

  • 问题内容: 我有一个春季服务: 我为此进行了集成测试: 这是问题所在: 正如用和注释的 因为坚持语义 该线程将呼叫分叉到自己的工作线程,然后直接继续执行,以前的工作线程完成其工作可能之前。 如何在验证结果之前等待的完成?注意,如何使用Spring4和批注编写单元测试以验证异步行为_ 的解决方案?不要在这里申请,作为回报,而不是。 问题答案: 为了遵守语义,某些活动类将具有注释,例如 为了解决我的问

  • 我正在尝试为springboot应用程序中的一个简单控制器编写一个测试。但是,由于为我的TopicRepository和topiccontroller创建bean而收到错误。我参考了一个教程,对spring boot开发并不陌生,所以不确定它是如何工作的。我怎样才能使测试工作? 控制器测试 控制器 专题存储库 我得到的错误是 UnsatisfiedDependencyException:创建名为'

  • 考虑一个maven实用工具模块(模块1),它定义了一个抽象类:AbstractFoo.java。在测试资源下,编写了所述类的模型:foomockup.java。还编写了一个测试类:AbstractFootest.java。 现在考虑第二个模块(模块2),它包含一个使用AbstractFoo的类,并声明测试用例:bar.java和bartest.java。java在创建Bar实例的同时创建FooMo

  • 问题内容: 我已经尝试了过去两天没有运气的问题。我只是试图使用spring框架和hibernate创建一个基于注释的JUnit测试。 我的IDE是netbeans 6.5,我正在使用hibernate3,spring2.5.5和JUnit 4.4。 这是我得到的错误: 问题答案: 将始终表明,一类是在你的编译器的类路径的版本是从上运行时类路径类的版本不同(有方法在编译时失踪,编译就失败了。) 在这

  • 您好,我对Junit和Mockito的单元测试相当陌生。我认为我对这些原则有一个相当合理的理解,但我似乎找不到任何解释来解释我特别想在网上测试什么。 我想测试一个方法,它调用其他几个方法(void和non-void),该方法还实例化了方法体中的对象。不幸的是,我不能分享代码,因为它不是我的,但这里有一个通用格式: 目前我只关心测试method_1,我不能直接测试,因为它是一个私有方法,所以我必须通