问题标签 [easymock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - java.lang.IllegalStateException:缺少前面方法调用 getMessage("title") 的行为定义
我正在使用 EasyMock(2.4 版)和 TestNG 来编写 UnitTest。
我有以下情况,我无法更改定义类层次结构的方式。
我正在测试扩展 ClassA 的 ClassB。
B类看起来像这样
A类代码
ClientMessages 类代码
MessageResource 类代码
测试B类
当我运行这个测试时,我得到以下异常:
java.lang.IllegalStateException:缺少前面方法调用 getMessage("title") 的行为定义
在调试我发现的是,它没有考虑模拟方法调用 mockMessageResourse.getMessage("ClassB.title")因为它是从构造函数(ClassB 对象创建)调用的。
任何人都可以帮我在这种情况下如何测试。
谢谢。
java - EasyMock - 改变 equals() 和其他 Object 方法的行为
EasyMock 文档非常清楚
对于使用 EasyMock 创建的模拟对象,无法更改三个对象方法 equals()、hashCode() 和 toString() 的行为,即使它们是为其创建模拟对象的接口的一部分。
我尝试测试的代码使用 equals() 将我的模拟对象与其他对象进行比较。我想做类似的事情
当我这样做时,我得到一个 IllegalStateException。鉴于文档中的内容,这并不奇怪。
有人对替代方法有任何建议吗?是否有另一种方法来控制模拟对象在调用 equals() 时返回的内容?我想我可以创建一个覆盖 equals() 的子类
但这似乎不优雅。我觉得我错过了一些重要的东西(比如 EasyMock 不允许你覆盖那些对象方法的原因)。有更好的解决方案吗?
spring - 用于涉及 scope="request" bean 的单元测试的 EasyMock 对象
我正在尝试将一些单元测试添加到我们公司的一些代码中。是的,我知道它应该已经存在,但似乎并不是每个人都对单元测试有相同的看法。
但是,我遇到了一些阻碍。诚然,我的 Java、Spring 和单元测试知识并没有达到应有的水平。我的问题是这样的:
我在我的代码中添加了一个单元测试,它测试一个类。此类包含一个具有 scope="request" 的 bean,当它尝试实例化该 bean 时会引发异常:
java.lang.IllegalStateException: No Scope registered for scope 'request'
我相信这是因为我没有 HttpServletRequest 对象,但我不知道如何创建其中的一个模拟对象,而且我也不知道如何在创建后将此模拟对象添加到单元测试中,所以它解决了这个问题。
下面是所涉及代码的精简版本,我相信它包含了这个问题的所有细节。
我怎样才能让它工作?
testing - EasyMock - 如何重置模拟但保持期望?
是否可以在同一模拟对象实例上重新定义特定期望?
假设我有这个验证 OK 的测试:
然后我想做的是重置模拟,保持所有定义的期望,但改变其中一个,比如:
目前不起作用,因为 foo.size 在重置调用后未定义。
必须是一个很好的方法来做到这一点,而不是每次都重建期望?
提前致谢
unit-testing - 使用模拟对象编写可维护的单元测试
这是我正在为其编写单元测试的类的简化版本
在为这个类编写单元测试时,我使用每个方法中使用的 EasyMock 模拟了对象。在方法 B、C 和 D 中设置模拟对象及其期望很容易。但要测试方法 A,我必须设置更多模拟对象及其期望。此外,我正在不同条件下测试方法 A,这意味着我必须以不同的期望多次设置模拟对象。
最后,我的单元测试变得难以维护并且非常混乱。我想知道是否有人已经或看到了解决此问题的好方法。
java - 如何使用easymock模拟类中的静态方法?
假设我有这样的课程:
如何使用 easy mock 模拟静态方法调用?StaticDude.getGroove()
.
我正在使用简单的模拟 3.0
java - 如何摆脱这个泛型警告?
我正在尝试模拟一个通用接口,每当我模拟它时,我都会收到以下警告:
GenericInterface 类型的表达式需要未经检查的转换以符合 GenericInterface<String>
我的界面是
我的测试是
我在测试用例的第一行收到警告。
如何删除此通用警告?
java - EasyMock 问题,在实例上调用方法但对如何获取此实例不感兴趣
我正在尝试使用 Easymock 测试一个算法,但我偶然发现了该算法的实现细节。谁能给我一条出路?给我一个问题的部分是:
现在在被测算法的某个地方发生了这种情况:
这会导致意外的方法调用 getB () 因为我的测试只声明了有趣的部分:
我知道这是因为订单已检查。但即使我放置以下行,也没有任何变化。
实例 a 也是一个 EasyMock 代理。
谁能帮帮我?
java - 如何 EasyMock 对返回通配符泛型的方法的调用?
我们正在考虑切换到 Spring 3.0 并遇到 Spring 3.0、EasyMock 和 Java 泛型的交叉问题。
在一个地方,我们模拟了一个 Spring 3.0 AbstractBeanFactory,特别是这个方法:
在 Spring 的早期版本中,这会返回一个非泛型并且一切都很好。但是,对于泛型,我们遇到了麻烦:
因为getType
返回Class<?>
,andReturn
需要Class<?>
作为参数,这根本无法正常工作。
有没有已知的解决方法?