代码之家  ›  专栏  ›  技术社区  ›  sergionni

模拟或模拟消息队列(JMS)

  •  19
  • sergionni  · 技术社区  · 14 年前

    有一条消息(文本),我肯定知道它的格式和内容。

    在现实世界中,此消息将来自消息队列。

    现在,我应该在本地PC上模拟、模拟或生成消息队列,以便进行测试。

    java jms ):

    JMS provider: A messaging system that implements the JMS specification.
    JMS clients: Java applications that send and receive messages.
    Messages: Objects that are used to communicate information between JMS clients.
    

    关于这个规格,我需要 .

    JMS客户
    消息 我知道。

    所以问题是如何启动消息队列?
    如何从Java代码中编程模拟它?我可以嘲笑它吗?

    谢谢。

    4 回复  |  直到 14 年前
        1
  •  6
  •   jcalvert    14 年前

    如果你使用 Spring Integration

        2
  •  2
  •   JoshMc    5 年前

    若要在实际生产JMS提供程序不可用时单独测试应用程序,可以使用以下选项之一:

    1. JMS模拟:
      在测试应用程序时,可以使用 test doubles API simulation tools 将允许您创建JMS模拟(例如,只需选择支持JMS的工具 Traffic Parrot ). 使用JMS模拟将允许您在测试期间获得高度的灵活性。通过设置mock以返回几乎任何类型的消息,您将能够测试典型的类似生产的测试场景,也可以测试假设的场景。您还将能够模拟不同类型的错误,这通常很难与真正的JMS提供者一起完成。看一看 this introduction video to JMS service virtualization for ActiveMq (服务虚拟化是模拟的另一个名称)或 this one for IBM MQ

    2. JMS提供程序测试实例:
      您可以在笔记本电脑上或在某个测试环境中运行JMS提供程序,并将应用程序连接到它而不是生产提供程序。当您在生产中使用开放源代码提供者(如ActiveMQ或RabbitMQ)时,应该很容易在您的笔记本电脑上运行其中一个提供者,因为它们是轻量级和免费的。对于IBM Websphere MQ,您可以使用 IBM MQ for Developers

    3. JMS类模拟:
      你可以用 Mockito 模拟与JMS类交互的单元测试。这个解决方案伴随着单元测试的所有权衡。有关这些的详细信息,请参见 testing pyramid .

    如果您想要黑盒测试您的应用程序,请使用我上面描述的解决方案之一。

        3
  •  0
  •   Eugene Kuleshov    14 年前

    至于进程内JMS,您可以查看 SomnifugiJMS .

        4
  •  -1
  •   AlexR    14 年前