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

我无法理解junit mockito测试中willThrow和doThrow的逻辑

冉绯辞
2023-03-14

我有这段简单的代码,但无法理解它的逻辑和含义。

void findByIdThrows(){
    given(addressRepository.findById(1)).willThrow(new RuntimeException("boom iii"));

    assertThrows(RuntimeException.class, () -> servic.findById(1));

    then(addressRepository).should().findById(1);
}

这是否意味着:如果您在查找id为#1的地址时遇到RuntimeException,那么断言我将给出RuntimeException?

最后一行是什么确实如此吗?

共有1个答案

裴宏壮
2023-03-14

第1行:

定义calladdressRepository。findById(1)将引发运行时异常

2-st线:

检查如果servic.findById(1)抛出RuntimeException

第三行:

相当于:

 verify(addressRepository).findById(1)

并检查地址存储库。调用了findById(1)

 类似资料:
  • //问题本身(之后的代码) 变量n是随机生成的整数。输出字符“*”和“#”,使第一行只包含星号,最后一行只包含数字符号。在每一个连续的行中,恒星的数量减少。行中的字符总数为n,有n+1行。

  • 我正在测试我注入的依赖项引发异常时的错误情况。但是,Mockito的方法只是使我的测试失败,而不是允许使用验证该异常。 我通过 而不是构造函数/设置器注入来注入我的 依赖项,因为我需要将其作为参数传递给。 测试在下面,星号处失败。CSV bean在我的成功测试中运行良好-在这种情况下,我能想到的主要区别是当/

  • 我试图在有向图中检测一个循环 在提出解决该问题的逻辑时,我发现一个简单的图遍历等式dfs就足够了,因为在执行dfs时,我们可以有一个条件来查看是否已经访问了任何节点。如果是这样,就必须有一个循环 在查找交叉检查逻辑的解决方案时,我遇到了这样一个解决方案,即在执行dfs的同时跟踪访问的节点,您还需要跟踪递归堆栈中的节点,如果一个节点已经在递归堆栈中,那么就有一个循环-我不理解 当我们可以简单地检查是

  • 问题内容: 我的路径中〜有点问题。 此代码示例创建一些名为“〜/ some_dir”的目录,并且不了解我想在主目录中创建some_dir。 请注意,这是在基于Linux的系统上。 问题答案: 您需要手动扩展波浪号:

  • 问题内容: 关于启动应用程序作为入口点,主要方法是Java应用程序中最重要的方法。使用此方法之前会发生什么尚不清楚。请有人可以通过以下方法签名来纠正我的看法,从而帮助我理解/阐明使用该方法之前发生的情况: JVM创建至少一个将访问您的主方法的对象。这个(假定的)对象尝试根据该API来访问Java应用程序,该API显然会将您绑定到已知的方法签名 您是否不能限制JVM上的(假定的)单独对象访问包含主要

  • 综述 在多功能的动态web应用程序中测试业务逻辑漏洞需要用非常规手段来思考。如果应用认证机制原先以1、2、3的步骤依次执行的验证身份目的来开发,万一用户从步骤1直接跳到步骤3会发生什么?用更加简单的例子来说,在打开失败、权限拒绝或仅仅500的错误的情况下,应用程序是否依然能够提供访问权限? 可以举出许多例子,但是不变的思想是“跳出常规思维”。这种类型的漏洞无法被漏洞扫描工具探测到,依赖于渗透测试人