gpt4 book ai didi

java - jms集成开发的单元测试

转载 作者:行者123 更新时间:2023-12-01 11:12:08 27 4
gpt4 key购买 nike

最近我从事 jms 集成工作。消息提供方也在并行发展。我手头上的只是一个 .xsd 架构和示例消息。

因为会有很多场景我必须检查。例如数据库中已存在的数据记录、错误/损坏消息等。

如何在本地进行集成测试/单元测试?

提前致谢!

最佳答案

集成测试和单元测试之间存在天壤之别。

我对单元测试的解释是针对单个类(单元)的白盒测试,重点是测试内部逻辑。这通常是通过 JUnit 完成的。我使用模拟(Mockito、Powermock)将类与其对其他类或其环境(文件系统、网络、CPU 线程、时间等)的任何依赖项隔离开来。在您的情况下,您应该有单独的组件来处理网络、(取消)编码、业务逻辑和存储。在我看来,为包含业务逻辑的组件编写单元测试是最简单且最有用的。其他的则更特定于框架/供应商,并且通常更难进行单元测试;它们将被集成测试覆盖。

集成测试涵盖应用程序的端到端流程。要创建它们,您需要实际设置所有应用程序组件、环境和远程系统。例如,您可以创建一个测试消息提供程序,将 JMS 消息发送到您的应用程序,您可以运行嵌入式 Web 服务器(例如 Jetty)来托管您的应用程序,并且可以运行内存数据库作为测试存储。我为此使用的一个很好的框架是 Arquillian但肯定还有许多其他好的解决方案。

编辑:阅读您的评论后。

单元测试不涉及与环境(网络、文件系统等)的任何交互,即使您使用自己的 stub 组件通过本地网络向您发送真实消息也是如此。那就是集成测试。

一旦您使用由另一个团队创建和管理的消息提供程序进行测试,您就脱离了自动化测试的范围。这是因为您无法保证此外部消息提供程序始终可用。自动化测试应该可以在您自己的计算机上独立运行,最多只需单击一次。

关于java - jms集成开发的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32221731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com