如何在Scala中模拟JDBC结果集

时间:2020-11-11 18:42:44

标签: scala unit-testing jdbc mockito

我已经遵循了文档中所有必需的过程。但是,rs.next()从不返回true,即使我嘲笑它也是如此。不知道哪里出了问题。

class XXXUnitTest extends AnyFunSuite {
  test("testExecuteSandboxInsertQuery") {
    val connection: Connection = Mockito.mock(classOf[Connection], RETURNS_MOCKS)
    val statement: PreparedStatement = Mockito.mock(classOf[PreparedStatement], RETURNS_MOCKS)
    val mockRS: ResultSet = Mockito.mock(classOf[ResultSet])
    when(connection.prepareStatement(insertToSandboxInfoTableQuery)).thenReturn(statement)
    when(mockRS.next()).thenReturn(true).thenReturn(false)
    when(statement.executeQuery()).thenReturn(mockRS)
    when(mockRS.getString("ims_org_id")).thenReturn("123")
    val actual = DBUtils.getImsOrgList(connection, getDistinctImsOrg)
    val expect = List("123")
    assert(actual == expect)
  }
 }

这是我使用的版本:

  • Scala版本:2.11
  • Mockito-scala.version:1.16.0
  • scalatest.version:3.2.2

0 个答案:

没有答案