【问题标题】:Block port for integration testing用于集成测试的块端口
【发布时间】:2013-01-03 13:43:31
【问题描述】:

有没有办法阻止运行 Java 应用程序的端口,模拟连接失败,进行误报测试:

  • 阻止与 DB 的连接以模拟 **DB 故障
  • 阻止与 JMS 的连接以模拟 JMS 故障
  • 阻止与 Internet 的连接以模拟独立模式下的行为

我在这里谈论的是集成测试,使用独立的码头服务器,它运行在同一台机器上但在不同的 JVM 中。因此,我正在寻找一种比 Mock 框架更通用的端口阻塞机制。

【问题讨论】:

    标签: java junit connection block false-positive


    【解决方案1】:

    一个模拟框架,例如Mockito 可用于测试此类情况。例如使用 mockito,您可以模拟一个 DBConnection 类,这样当您尝试调用方法来运行 SQL 查询时,您可以使该方法抛出 ConnectionExceptiontimeout 来测试您的应用程序如何响应这种情况。

    【讨论】:

    • 我说的是集成,而不是单元测试。从我的角度来看,Mockito 更像是一种单元测试的解决方案。此外,我正在使用独立服务器进行测试,该服务器运行在同一台机器上但在不同的 JVM 中。
    • @anton_oparin 也用于集成测试,我认为 Mockito 非常有用。如果您在代码中使用依赖注入(正式或非正式),那么使用 Mockito 进行集成测试非常容易。您可以简单地使用模拟依赖项初始化类,而不是说实际的 DBConnection。真正简化了模拟此类案例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2015-03-23
    • 2018-10-02
    • 1970-01-01
    • 2014-04-25
    • 2019-05-05
    • 1970-01-01
    相关资源
    最近更新 更多