Blob的简单模拟问题

时间:2016-07-11 05:48:36

标签: easymock

我们正在使用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处理此问题而不更改上述代码。

2 个答案:

答案 0 :(得分:1)

你在做一些奇怪的事情。如果您使用EasyMock来模拟blob,则应该模拟OracleResultSet,而不是JdbcResultSet。

这里你不需要H2。既然你在嘲笑。

作为旁注:请远离NPE的空渔具。在这样做的时候,你正在大力射击自己。

答案 1 :(得分:0)

我们没有嘲笑JdbcResultSet。在这种情况下,我们从数据库中获取blob内容,因此我们无法模拟OracleResultSet。从Empty catch中删除了代码。