- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑以下示例 MockUp
类 Foo
拦截构造函数中的 Bar
然后实现 toString()
在 Bar
方面;
public class FooStub extends MockUp<Foo> {
private Bar bar;
@Mock
public void $init(Bar bar) {
this.bar = bar;
}
@Mock
public String toString() {
return bar.toString();
}
}
如果 Foo
碰巧覆盖 toString()
一切正常。否则,您会得到一个 IllegalArgumentException
:“为以下模拟找不到匹配的真实方法”。我从这里了解到,JMockit 不查看基类,因此找不到要模拟的 toString()
方法。
假设我不能修改 Foo 类(实际上我可以,但只是为了争论),有什么办法可以模拟 toString()
只是为了这个 Foo
类?
明确地说,我想模拟这个类的所有实例,而不仅仅是一个实例(它有不需要 MockUp
的简单解决方案)。
最佳答案
JMockit 将模拟类层次结构中的所有父类(super class)up to,但不包括 java.lang.Object
.
您可以在测试中定义 private final
类,它通过覆盖委托(delegate)给 Bar
的 toString()
来扩展 Bar
code> 的 toString()
通过调用 super.toString()
:
private final class Baz extends Bar {
@Override
public String toString() {
return super.toString();
}
}
现在您在 mock 中所要做的就是通过 Baz
而不是 Bar
进行委托(delegate)。
通过这种方式,您可以获得 toString()
的具体而透明的实现,您可以在不触及可能不受您控制的 Bar
类的情况下对其进行模拟。
关于java - JMockit MockUp 可以模拟 toString() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798116/
我使用 Balsamiq Mockups 进行了 UI 设计。现在它们只是图像。我想知道是否有可能构建一个交互式 Storyboard。基本上,我希望用户单击一个按钮并显示与该按钮关联的下一个 UI
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 7年前关
在 EvolusPencil 文档中有一个表单,上面有很多控件(对象)如何在不按住 CTRL 键单击每个控件的情况下选择此表单上的多个控件? 最佳答案 您需要锁定要选择的对象周围的任何对象,方法是右键
我的应用程序使用FastScanner (基于 BufferedReader )读取输入(查看我的问题的代码部分)。 如果我想在测试中替换输入,我应该模拟 FastScanner (查看我的问题的代码
我一直在用 Balsamiq创建模型。我使用的是试用版,所以我将所有屏幕都放在一个模型中,而不是多个文件中。我想将这些模型的导出发送给我的团队,以便他们可以对其进行评论。他们需要能够轻松地添加箭头、标
我刚刚开始使用 JMockit,并且对使用 MockUp 进行“伪造”与使用 Expectations 来模拟对象的优势感到困惑。 根据我阅读的文档,类的 MockUp 允许我用自己的实现覆盖方法。然
我正在使用 JUnit 和 JMockit 编写一些单元测试,并且需要为采用私有(private)枚举实例作为参数的方法编写 JMockit MockUp。这是我需要模拟的类: public clas
我正在使用用 Groovy 编写的 Spock 测试来测试一些 Java 代码。我使用 JMockit 来模拟 java 代码中的方法,因为 Spock 只处理模拟 Groovy 类。我遇到了一个问题
我正在尝试(仍然)学习 JMockit 的来龙去脉。这是另一个我不明白的 JMockit 怪癖示例。使用 NonStrictExpectations 运行测试效果很好。但是,使用 MockUp 运行不
考虑以下示例 MockUp 类 Foo 拦截构造函数中的 Bar 然后实现 toString() 在 Bar 方面; public class FooStub extends MockUp {
我是 JMockIt 的新手,正在尝试弄清楚/理解如何使用 @Injectable对于我已经定义的顶级 MockUp 类。 例如: // JUnit Test Class public class R
我正在尝试将 JNDI 数据源模拟到 JUnit 测试中,但由于某种原因它不起作用: 我使用这些导入: import static org.mockito.ArgumentMatchers.anyIn
我正在尝试将使用 JMockit 的测试套件转换为使用 Mockito 和 powermock。 在测试设置中有以下代码片段: new MockUp() { @Mock publ
我很喜欢 unit testing一些legacy shell 脚本。 在现实世界中,脚本通常用于调用实用程序像 find, tar, cpio, grep, sed, rsync 、date 等等,
有没有办法模拟 Angular 2 的 Http 对象,梦想是将它用于模型,并拥有与核心代码相同的模型,除了发送到服务器的连接。 最佳答案 有一个 MockBackend,确保它在默认 Backend
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在 plone 5 页面模板中假设以下愚蠢的代码片段: $('#bar').click( function () { $('#bar').addClass(
我刚刚将 Android Studio 更新到了 2.3 版(金丝雀版)和最后的构建工具 'com.android.tools.build:gradle:2.3.0-alpha1' 以及当我打开布局并
我是一名优秀的程序员,十分优秀!