- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
EasyMock 文档非常清楚
The behavior for the three object methods equals(), hashCode() and toString() cannot be changed for Mock Objects created with EasyMock, even if they are part of the interface for which the Mock Object is created.
我尝试测试的代码使用 equals() 将我的模拟对象与其他对象进行比较。我想做类似的事情
expect(mock.equals(obj)).andReturn(false);
当我这样做时,我得到一个 IllegalStateException。鉴于文档的内容,这不足为奇。
有人对替代方法有任何建议吗?有没有另一种方法来控制模拟对象在调用 equals() 时返回的内容?我想我可以创建一个重写 equals() 的子类
class FooImplOverrideEquals extends FooImpl {
public boolean equals;
public boolean equals(Object obj) { return equals; }
}
FooImplOverrideEquals mock = createMock(FooImplOverrideEquals.class);
mock.equals = false; // instead of expect(mock.equals(obj)).andReturn(false);
但这似乎不够优雅。我觉得我遗漏了一些重要的东西(比如 EasyMock 不允许您重写这些对象方法的原因)。有更好的解决方案吗?
最佳答案
许多模拟库不支持这一点,因为这通常不是一个好主意。如果你正在做一个 equals() 比较,那么你有一个值对象,而不是一个真正的合作者,你最好使用一个真实的实例。如果您使用 equals() 来表示其他一些概念 (isBestFriendsWith(other)),那么您可以在适当的时候 stub 。
关于java - EasyMock - 改变 equals() 和其他对象方法的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007532/
我想更好地理解 EasyMock,并使用它我想出了这个问题。 我想做的是对一个对象设置一个负期望,以检查在测试期间是否没有调用某个方法(在验证那些初始期望时)。 我知道 verify 的默认行为是检查
有没有一种简单的方法来模拟这个调用: objectA.getB().getC(); 现在我这样做的方式是: A mockA = EasyMock.createMock(A.class); B mock
我试图模拟对 final方法的调用 ResourceBundle.getString() .使用 PowerMock 1.4.12 和 EasyMock 3.1,调用不会被模拟;而是调用“真实”方法。
我正在使用 EasyMock 和 EasyMock CE 3.0 来模拟依赖层并测试我的类。以下是我无法找到任何解决方案的场景 我有一个要测试的类,它调用一个依赖类void 方法,该方法接受输入参数,
我有一个间接使用类 Foo 的测试用例。为了测试用例的目的,我不在乎 Foo 是什么。我应该能够 mock 它。 Foo mock = EasyMock.createMock(Foo.class);
我已经使用 EasyMock 编写了很多 Mock 对象。然而,我经常发现编写部分模拟非常耗时,而且感觉不“正确”。 我会说这是一个设计错误,因为我尝试模拟的类将多个关注点合二为一,因此我应该创建单独
在我的单元测试中,我使用 EasyMock 创建模拟对象。在我的测试代码中我有这样的东西 EasyMock.expect(mockObject.someMethod(anyObject())).and
所以我已经使用 EasyMock 的类扩展有一段时间了。突然间,我遇到了这个异常,但只有当我运行整个测试套件时: java.lang.IllegalStateException: 0 matchers
这有什么区别: ResultSet set = EasyMock.createNiceMock(ResultSet.class); EasyMock.expect(set.getInt("col1")
我正在尝试完成有关 easymock 的教程以首次使用它。 http://www.vogella.de/articles/EasyMock/article.html 我正在使用- 面向 Java 开发
我正在使用 TestNG、EasyMock 和 PowerMock 进行测试。根据下面的代码,我尝试模拟从被测静态方法(fetchAuthenticator)调用的静态方法。当我运行测试时,execu
我被分配了将我们的模拟代码从 EasyMock 1-style 升级到 EasyMock 2/3-style 的任务(现在是时候了,因为 EasyMock 1 的大部分内容已于 2005 年被弃用并于
在 API 文档中提到在 strictmock 中默认启用顺序检查,而在 nice mock 的情况下它不是。我不明白他们所说的“订单检查”到底是什么意思。 最佳答案 如果您告诉 mock 期望调用
根据标题,只是想知道是否有一种带有 easymock 的机制来测试方法在其生命周期内是否未被调用。 最佳答案 我知道这个问题很老,但我和 OP 有同样的问题,并做了更多的环顾四周。我找到了以下解决方案
我正在尝试在带有 EasyMock 的 JUnit 中设置测试,但遇到了一个我似乎无法解决的小问题。我希望这里有人可以提供帮助。 这是我尝试测试的方法的简化版本: public void myMeth
这是我第一次使用 EasyMock,我正在尝试向一些遗留代码添加一些单元测试。 遗留代码位于 Spring 3.1 中,我使用的是 EasyMock 3.4。 我在这里想要完成的是测试调用 dao 的
是否可以为循环调用的模拟设置不同的期望? 考虑到用例, while(condition){ List list = Database call //Call to be mocked ..
我正在使用 EasyMock 尝试通过两层深度的项目列表来模拟迭代。我的单元测试代码如下 EventContext ctx = EasyMock.createMock(EventContext
我在使用 EasyMock 时遇到一些奇怪的行为。我已经设置了一些期望,但是当我运行测试时,EasyMock 失败了,因为我的期望按指定执行。以下是失败的示例: Unexpected method c
例如,我创建一个对象,并想为其设置一个属性。问题是,该属性永远不会被设置,因为 EasyMock 会拦截它。如何解决这个问题? ctx = control.createMock(EGContext.c
我是一名优秀的程序员,十分优秀!