【问题标题】:Tomcat and JDBC driverTomcat 和 JDBC 驱动程序
【发布时间】:2010-11-28 12:59:30
【问题描述】:

我在 tomcat 上部署了一个 webapp,它使用 JDBC 驱动程序访问远程数据库。我的问题是:我怎样才能像代理一样进入中间,并模拟结果(不更改一行 Java 代码)?

示例:我可以使用一个 jdbc 代理吗?

谢谢。

【问题讨论】:

    标签: java tomcat jdbc mocking


    【解决方案1】:

    你有几个选择:

    1. 使用嵌入式数据库,例如 H2。它甚至与其他数据库几乎没有compatibility modes,因此您不必更改语句。

    2. 按照 Sanjay 的建议,使用像 Mockito 这样的模拟库。

    3. 使用dbUnit 对您的数据库进行单元测试。

    4. 如果可行,请在本地计算机上安装远程数据库。

    编辑:根据您的评论,您似乎对选项 1 和 2 感兴趣。

    我没有使用 mocking,因为我还不需要它(我更喜欢使用 real 的东西),但我并不是说它没有用。

    所以,我将重点放在1:

    查看H2的教程,特别是关于connecting to database using JDBC的部分。此外,阅读quickstart 指南也不会受到伤害。你必须阅读才能理解;-)

    为了兼容性,请检查我之前提供的链接并使用适合您正在使用的数据库的任何模式(您没有指定哪个模式)。

    【讨论】:

    • 回应点:1)我的目标是在本地使用数据库,例如H2 ...但是如何? 2)作为 db 的替代品,Mock 是一个很好的解决方案......但是如何? 3)我不想测试数据库 4)没有提供本地安装,我的帖子的目的只是为了拥有一个
    【解决方案2】:

    不更改/添加一行代码?从来没听说过。当然,如果您已经编写了一个接口并计划为您的代码编写 JUnit 测试,您可以查看像 Mockito 这样的模拟库来为您完成这项工作,但是“创建”数据的工作将由您完成小心。

    【讨论】:

      【解决方案3】:

      问题是:您要测试什么?您想验证您的 SQL 语句是否正确吗?还是交易边界?或者也许在你的 DAO 层中进行一些数据处理?以这种方式思考可能会导致您对需要嘲笑的内容得出不同的结论。

      【讨论】:

      • 目标是加快应用程序的使用(开发中)。远程数据库减慢了开发速度。
      • 啊,好的。我非常喜欢这个:hsqldb.org - 很容易在与其他虚拟机相同的虚拟机中运行,而且功能如此齐全。也许这是一个解决方案?
      猜你喜欢
      • 2013-02-17
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多