我们正在使用Easy Mock
在带有JUnit
数据库的java中创建H2
测试用例。
由于获取Blob内容的代码特定于Oracle并且收到以下错误。
ClassCastException:无法将org.h2.jdbc.JdbcResultSet(id = 72)强制转换为oracle.jdbc.driver.OracleResultSet
public BLOB getBLOB(String field) throws SQLException {
try {return ((OracleResultSet) rs).getBLOB(field);
} catch (NullPointerException e) {}}
我们如何在Easy Mock
处理此问题而不更改上述代码。
答案 0 :(得分:1)
你在做一些奇怪的事情。如果您使用EasyMock来模拟blob,则应该模拟OracleResultSet,而不是JdbcResultSet。
这里你不需要H2。既然你在嘲笑。
作为旁注:请远离NPE的空渔具。在这样做的时候,你正在大力射击自己。
答案 1 :(得分:0)
我们没有嘲笑JdbcResultSet。在这种情况下,我们从数据库中获取blob内容,因此我们无法模拟OracleResultSet。从Empty catch中删除了代码。