【问题标题】:does jUnit testcase actually inserts data in database when we run the testcase当我们运行测试用例时,jUnit 测试用例是否实际上在数据库中插入数据
【发布时间】:2012-05-04 01:57:36
【问题描述】:

我必须为在数据库中插入记录的方法编写一个测试用例。

当我们使用 jUnit 测试用例来测试将数据插入数据库的函数时,它是否可以实际将数据插入数据库?运行测试用例后可以查看数据库表中的数据吗?

【问题讨论】:

  • 严格来说,如果你点击数据库(或任何外部系统),那么它就是一个集成测试......

标签: junit


【解决方案1】:

JUnit 测试就像任何其他代码一样只是代码。如果您创建一个 JDBC 连接并使用它来执行语句,那么这些语句将像在其他任何地方一样工作。没有什么神奇的事情发生。

【讨论】:

    【解决方案2】:

    如果您为执行数据库插入的代码编写测试,则该代码将在您执行它时执行插入。

    你可以在运行测试用例后检查数据库中的数据。您可以运行查询来判断数据库的状态是否正确。测试框架将为您自动执行此操作。

    针对数据库进行测试需要一些规划。一方面,您必须弄清楚您将针对哪个数据库进行测试。如果您在开发环境中针对数据库进行测试,您可能会受到数据更改的影响,并且您的测试可能会意外失败。使用像 H2 这样的内存数据库是一种流行的选择,以确保您的测试有一个处于可预测状态的专用数据库。

    DBUnit 是一个简化数据库测试的测试框架。您可以在测试之前指定您希望数据库填充的数据,您可以指定测试后您希望数据库中包含哪些数据,框架将检查实际数据是否与您的预期相符。

    【讨论】:

      【解决方案3】:

      是的,它将数据添加到数据库中。但我们不应该那样做。插入数据后,我们需要再次运行删除插入数据的测试用例。这样数据库就不会发生任何变化。

      【讨论】:

        猜你喜欢
        • 2020-11-04
        • 2019-05-12
        • 1970-01-01
        • 2019-12-26
        • 2019-03-26
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多