当前位置: 首页 > 面试题库 >

测试是否调用了另一种方法

钱季
2023-03-14
问题内容

因此,我敢肯定那里有类似的东西,但是我一直在寻找一个小时,却没有找到我真正想要的东西。说我有一堂课,看起来像这样:

public class MyClass
{
    public void myMethod(boolean shouldCallOtherMethod)
    {
        if(shouldCallOtherMethod)
        {
            otherMethod();
        }
    }

    public void otherMethod()
    {
        System.out.println("Called");
    }
}

我该如何做这样的工作?

@Test
public void shouldCallMethod()
{
    MyClass myClass = new MyClass();
    myClass.myMethod(true)

    // verify myClass.otherMethod method was called
}

问题答案:

使用Mockito,您可以像这样 监视真实对象

import org.junit.Test;
import static org.mockito.Mockito.*;
public class MyClassTest {
    @Test
    public void otherMethodShouldBeCalled() {
        MyClass myClass = new MyClass();
        MyClass spy = spy(myClass);

        spy.myMethod(true);
        verify(spy).otherMethod();
    }
}

有一些陷阱,因此也请查看相关文档。



 类似资料:
  • 所以我肯定有类似的东西在那里,但我已经搜索了一个小时,还没有找到确切的我要找的东西。假设我有一个这样的类: 我该如何制作这样的作品?

  • 我在我的服务层有一个方法: [1]这一行获取条形码,比如然后调用另一个类中的一个方法,该方法从数据库中检索有关该项目的信息,执行计算并返回价格。可能的值可以类似于。 [2]按价格对所有值进行升序排序。因此,如果列表包含和和,则将其排序为和。 当我尝试测试此方法时,当调用时,我得到空指针异常。我如何测试这个方法?我试着搜索并找到了一些关于使用mockito的问题和答案,但我不知道如何实现它。 我目前

  • 对于测试,[[ ]]结构可能比[]更合适.同样地,算术比较可能用(( ))结构更有用. 1 a=8 2 3 # 下面所有的比较是等价的. 4 test "$a" -lt 16 && echo "yes, $a < 16" # "与列表" 5 /bin/test "$a" -lt 16 && echo "yes, $a < 16" 6 [ "$a"

  • 问题内容: 我必须在testng中编写以下单元测试用例: saveProductTest如果产品详细信息成功保存在数据库中,则将返回productId。 ModifyProductTest,它应该使用以前保存的productId作为参数。 我正在使用testNg数据提供程序从XML文件中获取saveProductTest的产品详细信息输入(PrdouctName,ReleaseDate)和Modi

  • 在空手道中,我希望有一个模式变量,它是响应数据的超集,这样我就可以用相同的模式测试多个请求。 这对于GraphQL应该特别有用,因为请求本身定义了返回的字段。 预期模式: 回答数据: 在本例中,响应返回的所有键。数据应该在架构中,但架构中的任何键都不在响应中。数据应该被忽略。 在空手道中有没有办法做到这一点,或者有没有计划在将来增加这一功能? 编辑:更新了示例,因为唯一遗漏的属性是一个可为空的属性

  • 在我的Ruby应用程序中,我试图用RSpec测试一个用控制器参数调用的模块方法。 该模块是用于跟踪分析的EventTracker模块:https://github.com/doorkeeper/event_tracker 情况是这样的: > 从我的控制器中,我从控制器调用该方法,如下所示: 方法在模块中定义,如下所示: 终止 我尝试了不同的解决方案,但都不管用。例如: 第一个不起作用,因为trac