java - C++ 和 Java 有哪些记录和重放网络协议(protocol) stub /模拟工具?

标签 java c++ testing integration-testing

我对单元测试/集成测试完全陌生。我读过,单元测试在与外部系统交互时应该使用模拟,但这似乎需要大量手动工作。

对于外部系统,我的意思是:

  • 我的类(class)访问并计算一些信息的大型数据库
  • 我的类(class)访问和检索大型 XML 的外部 Web 服务
  • 我的类实现了一个串行协议(protocol),该协议(protocol)连接到外部计算机,并在长时间对话后检索大量数据并进行计算。

此外部系统并不总是可用,因为它依赖于另一家公司。尽管如此,即使并非所有外部系统都可用,我也想多次测试我的应用程序。

我正在考虑一个框架(用于 Java 和/或 C++),它可以执行以下操作:

  • 使用某种 spy 和真实的外部系统, spy “记录”(在本地文件中)与外部系统的所有交互。这只需运行一次。
  • 自动创建一个模拟,“重播”真实系统之前的交互(访问本地文件)。这部分可以根据需要执行多次。

如果我的应用程序(在“重播”阶段)调用与第一次(“记录”阶段)调用的相同方法,它应该得到相同的结果。

这样的框架存在吗?如果没有,您会建议什么替代方案?

我已经为许多外部系统实现了模拟器,但这使我的工作量增加了一倍。例如,在串行协议(protocol)的情况下,我必须实现我的“客户端”以及“服务器”的模拟器。我想知道是否有办法避免每次都重新发明轮子。

最佳答案

关于java - C++ 和 Java 有哪些记录和重放网络协议(protocol) stub /模拟工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477088/

相关文章:

c++ - 有没有办法在子范围内有一个指向父(派生)类的指针?

testing - ClearCase:如何查找文件夹中每个文档的版本历史记录

c++ - 如何使用单个解锁方法实现 C++ Reader-Writer 锁,可以称为读取器或写入器?

c++ - CImg:如何保存灰度?

selenium - 使用 Selenium IDE 和 WebDriver 编写的测试执行时间比较

testing - alexa技能会指出要将商品发送到的配置文件名称,城市和密码,这会通过认证吗?

Java(机器人)屏幕截图超出可见范围

java - 什么是多播?

java - 我想在表中插入数组值来完成此任务,我必须创建动态插入查询。如何执行它?

java - sha256 哈希函数中三个字节中的两个不同