我对单元测试/集成测试完全陌生。我读过,单元测试在与外部系统交互时应该使用模拟,但这似乎需要大量手动工作。
对于外部系统,我的意思是:
- 我的类(class)访问并计算一些信息的大型数据库
- 我的类(class)访问和检索大型 XML 的外部 Web 服务
- 我的类实现了一个串行协议(protocol),该协议(protocol)连接到外部计算机,并在长时间对话后检索大量数据并进行计算。
此外部系统并不总是可用,因为它依赖于另一家公司。尽管如此,即使并非所有外部系统都可用,我也想多次测试我的应用程序。
我正在考虑一个框架(用于 Java 和/或 C++),它可以执行以下操作:
- 使用某种 spy 和真实的外部系统, spy “记录”(在本地文件中)与外部系统的所有交互。这只需运行一次。
- 自动创建一个模拟,“重播”真实系统之前的交互(访问本地文件)。这部分可以根据需要执行多次。
如果我的应用程序(在“重播”阶段)调用与第一次(“记录”阶段)调用的相同方法,它应该得到相同的结果。
这样的框架存在吗?如果没有,您会建议什么替代方案?
我已经为许多外部系统实现了模拟器,但这使我的工作量增加了一倍。例如,在串行协议(protocol)的情况下,我必须实现我的“客户端”以及“服务器”的模拟器。我想知道是否有办法避免每次都重新发明轮子。
最佳答案
对于 Java:http://freeside.co/betamax/
对于 C++,这是某人自行开发的解决方案:http://www.codeproject.com/Articles/381622/Unit-test-and-the-man-in-the-middle
关于java - C++ 和 Java 有哪些记录和重放网络协议(protocol) stub /模拟工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477088/