java - 我怎样才能在 EasyMock 中进行 cast 操作?

标签 java easymock

如何模拟转换操作。 我在一个依赖对象上有一个强制转换操作,它将强制转换为另一个依赖对象,例如

SqlMapClient sqlMapClient;
SqlMapClientImpl sqlMapClientImpl = (SqlMapClientImpl) sqlMapClient 

我正在模拟依赖类(class),即 SqlMapClientSqlMapClientImpl。但我需要知道如何使用 EasyMock 模拟转换。

如有任何帮助,我们将不胜感激。

最佳答案

您不能模拟强制转换,因为强制转换不会导致对对象的方法调用。

相反,使用 EasyMock 类扩展来模拟 SqlMapClientImpl 类,并将对该模拟的引用传递给将 SqlMapClient 接收到 SqlMapClientImpl 的类

但是请注意,在您的代码中进行像这样的向下转型是一种代码味道。如果您的生产代码正在将接口(interface)向下转换为实现类,那么您将失去使用接口(interface)的所有灵 active 。它实际上可能比根本不使用接口(interface)更糟糕,因为它看起来像你的类依赖于接口(interface),因此可以与任何实现一起使用,但实际上你的类依赖于一个特定的实现。

关于java - 我怎样才能在 EasyMock 中进行 cast 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661925/

相关文章:

java - 从 spring Controller 返回 csv 文件时的奇怪行为

mockito - Cobertura 显示正确的覆盖范围,但在 Sonar 中许多文件显示 0% 覆盖范围

java - 如何使用 easymock 模拟构造函数上的方法调用?

java - 为什么我的字符串不接受 null?

java - 数据库被覆盖(必须打开应用程序两次才能正确显示)?

java - EasyMock + PowerMock : How to mock field?

java - 使用简单的模拟对象

java - EasyMock 和通用参数

java - 重用 NDK 代码需要安装 NDK 吗?

java - 在java中获取下一个更高的整数值