模拟多次调用的静态方法

2024-02-19

我有一个静态方法,在多个地方使用,主要是在静态初始化块中。它接受一个 Class 对象作为参数,并返回该类的实例。 我只想在特定的 Class 对象用作参数时模拟此静态方法。但是,当从其他地方使用不同的 Class 对象调用该方法时,它会返回 null。
如果参数不是模拟的参数,我们如何让静态方法执行实际的实现?

class ABC{
    void someMethod(){
        Node impl = ServiceFactory.getImpl(Node.class); //need to mock this call
        impl.xyz();
    }
}

class SomeOtherClass{
    static Line impl = ServiceFactory.getImpl(Line.class); //the mock code below returns null here
}


class TestABC{
    @Mocked ServiceFactory fact;
    @Test
    public void testSomeMethod(){
         new NonStrictExpectations(){
              ServiceFactory.getImpl(Node.class);
              returns(new NodeImpl());
         }
    }
}

你想要的是一种“部分嘲笑”的形式,特别是dynamic部分嘲笑 http://jmockit.org/tutorial/BehaviorBasedTesting.html#dynamicPartial在 JMockit API 中:

@Test
public void testSomeMethod() {
    new NonStrictExpectations(ServiceFactory.class) {{
        ServiceFactory.getImpl(Node.class); result = new NodeImpl();
    }};

    // Call tested code...
}

只有符合记录期望的调用才会被嘲笑。当调用动态模拟类时,其他人将执行真正的实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟多次调用的静态方法 的相关文章

  • FullTextHibernateSessionProxy 在类加载器中不可见

    我遇到了一个非常奇怪的错误 我无法理解 我正在运行 Seam 2 2 1 CR2 和 JBoss 4 3 0 GA 我的应用程序由 3 个模块组成 应用程序 xml
  • Android 2.3.4 SSL问题

    升级到 Android 2 3 4 后 出现以下异常 javax net ssl SSLException Read error ssl 0x I O error during system call Connection timed ou
  • 检测文本字段溢出

    假设我有一个 PDF 文档 其中的文本字段定义了某种字体和大小 有没有办法确定某些文本是否适合字段矩形内PDFBox 我试图避免文本未完全显示在字段内的情况 因此 如果给定字体和大小的文本溢出 我想将字体大小更改为Auto 0 此代码重新创
  • 如何以编程方式搜索 Google Java API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道是否以及如何以编程方式搜索 Google 特别是如果有 Java API 的话 一些事实 Goo
  • 在哪里可以找到 Java 数组的源代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以找到java数组的源代码 Example double arr new double 20
  • Android webview 滚动不起作用

    我正在尝试在网络视图中向下滚动到页面底部 我正在使用谷歌在其教程中提供的网络视图示例 我正在使用这行代码来尝试滚动 但它不起作用 mWebView pageDown true 关于如何使其以编程方式滚动有什么建议吗 谢谢 public cl
  • Intellij - 调试器断点不再工作

    我正在正常工作 调试Java Maven项目与IntelliJ 2018 2 1 然后我单击 Intellij 停止应用程序以对代码进行一些修改 当我在调试模式下再次启动应用程序时 它 调试器 只是停止工作 现在 应用程序需要大约 10 2
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • hibernate锁等待超时超时;

    我正在使用 Hibernate 尝试模拟对数据库中同一行的 2 个并发更新 编辑 我将 em1 getTransaction commit 移至 em1 flush 之后我没有收到任何 StaleObjectException 两个事务已成
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了

随机推荐

  • 正则表达式可以是数字字符,也可以是字母数字但不仅仅是字母字符

    要验证必须同时包含数字和字母的字段 我可以使用 0 9 a zA Z a zA Z 0 9 0 9a zA Z 但我想另外接受仅数字字符串 你的意思是你至少想要一个号码 您可以使用前瞻断言 d a z d i
  • Pandas 获取映射函数中元素的索引

    我正在使用 pandas 来分析到不同节点的现有 ssh 会话 因为我已经解析了 ssh 守护进程日志 并且我有一个包含以下列的 DataFrame Node 建立连接的节点名称 会话 会话ID Start 指示连接何时开始的时间戳 Fin
  • 我应该如何为最终的 64 位编译器准备 32 位 Delphi 程序? [复制]

    这个问题在这里已经有答案了 可能的重复 迁移到 Delphi 2010 和 Unicode 时如何为 64 位做好准备 https stackoverflow com questions 1568685 how to also prepar
  • 从java调用带有表值参数的存储过程

    在我的应用程序中 我想执行类似的查询SELECT FROM 表 WHERE col IN list 其中 list 可以有可变的值 我正在使用 MS SQL 服务器数据库 当我用谷歌搜索这个问题时 我发现了这个链接 http www som
  • 如何检查 Kafka 中的消费者是否消费了某个主题

    如何检查特定消费者群体是否完全消费了某个主题 这相当于在标准排队系统中检查队列是否为空 这并不明显 因为每个消费者只能看到给定的分区 因此它不知道其组中的其他消费者是否消耗了他们的部分 我想这应该以某种方式完成AdminUtils or Z
  • 如何使div相对于父级的高度为100%?

    我坚持下面这样的事情 我需要将右上 div 设为 100 高度 其背景颜色将覆盖主 div 的整个高度 div style width 100 margin auto text align left border 1px solid 628
  • Magento 2 标签翻译显示大括号

    显示双花括号之间的多个翻译的标签 我在 Magento 2 的前端和后端都遇到这个问题 这是我到目前为止所尝试过的 清除并刷新缓存 重新部署静态内容 将 Magento 2 2 5 更新至 2 2 6 请查看图片以获取更多信息 Magent
  • 如何获取 JavaFX 中某个阶段的关闭事件?

    在JavaFX中 如果用户单击阶段的关闭按钮 X 最右上方的十字 如何获取事件 我希望我的应用程序在窗口关闭时打印调试消息 System out println Application Close by click to Close But
  • 为什么表别名通常都是小写?

    我总是这样看例子 但为什么呢 这是一个好的做法吗 因此它们与查询的其余部分 通常以大写形式编写 不同 至于这是否是最佳实践 如果您以全部大写形式编写查询 那么它肯定会使您的查询更易于阅读和理解
  • 如果代码中没有 return 语句,函数在 C 程序中返回什么

    我做了一个关于如何在 C 中递归地反转单链表的函数 功能如下 struct node reverseSLL2 struct node p struct node temp struct node temp1 if p NULL temp1
  • NEST 查询精确文本匹配

    我正在尝试编写一个 NEST 查询 该查询应根据精确的字符串匹配返回结果 我在网上研究过 有关于使用术语 匹配 匹配短语的建议 我已经尝试了所有这些 但我的搜索返回的结果包含部分搜索字符串 例如 在我的数据库中 我有以下几行电子邮件地址 电
  • 如何实施xgboost增量训练?

    问题是由于列车数据大小 我的列车数据无法放入 RAM 中 所以我需要一种方法 首先在整个训练数据集上构建一棵树 计算残差构建另一棵树等等 就像梯度提升树一样 显然如果我打电话model xgb train param batch dtrai
  • Rails 选择 GROUP 中 COUNT 最高的对象

    目标是选择Store其中一个Coupon最常用于 目前 我有这个 并且它有效 分解以供解释 coupon rb has many redemptions has and belongs to many stores def most pop
  • SML 和函数式编码风格

    我开始学习标准机器学习编程语言 https www coursera org course proglang course 在第一个作业中 我尝试编写一个函数is older需要两个日期并评估为true or false 它评估为true如
  • 使用 JavaScript 将 CSV 转换为 XML

    我是 javascript 新手 我需要将 csv 字符串数据转换为 xml 如下所示 CSV 数据 product pakageing qty mno 100ML 200 pqr 400ML 300 abc 150ML 100 XML 应
  • 使用 chromecast 从 IP 摄像机进行流式传输

    我正在尝试通过我的 Android 设备通过 IP 摄像头进行流传输 我已经从发布的代码中编辑了 URLGitHub https github com googlecast cast android sample当我尝试从摄像机的 IP 地
  • log4net 用于 IIS 中托管的 WCF 服务库

    对于一个项目 我有一个 WCF 服务库 目前非常简单 它通过 WCF 服务网站项目托管在 IIS 7 5 中 对于该 WCF 服务库 我需要 log4net 来记录一些重大事件 但启动并访问网站后 不会创建任何日志文件 这是我的配置详细信息
  • 返回 std::map 值的地址是否安全?

    我有一个std map
  • Haskell:instance Functor ((->) r) 的意义是什么

    我承认 我的问题可能源于缺乏知识 而且比较模糊 但我试着去理解 有一些疑问 却无法解决 那么GHC Base有这样的定义 它的意义是什么 instance Functor gt r where fmap 从编程语言的角度来看 我们有真正的基
  • 模拟多次调用的静态方法

    我有一个静态方法 在多个地方使用 主要是在静态初始化块中 它接受一个 Class 对象作为参数 并返回该类的实例 我只想在特定的 Class 对象用作参数时模拟此静态方法 但是 当从其他地方使用不同的 Class 对象调用该方法时 它会返回