我目前正在为我的系统编写集成/功能测试。部分功能是通过http(我运行的另一个系统)访问Web服务。
我应该如何设置Web服务的测试实例以进行良好的功能测试?我想让我的系统使用实时生产数据运行此服务。
Web服务是否应该是一个独立的实例,它始终具有我手动重新加载的实时生产数据(可能每次启动它的实例时都会重置)?
每次测试都应该设置和拆除Web服务吗?
处理这类情况有哪些常见做法?
答案 0 :(得分:2)
首先请确保您了解Functional Testing和Integration Testing之间的区别。无论集成测试(实例化Web服务,访问数据库)所需的主要工作,您都可以做很好的功能性测试。基本上Mocking技术甚至可以很好地模拟数据层响应和Web服务行为(我相信大多数测试用例都可以忽略像 HTTP作为传输这样的细节)
对于此类集成测试,我建议使用单独的SIT环境,其中包括单独的Web服务和数据库。
Web服务是否应该是始终具有实时生产数据的独立实例 我手动重新加载(每次启动它的实例时可能会重置)?
是的,它应该完全分开,但可以手动生成/准备数据。例如,您可以准备一些允许测试一些预定义测试用例的数据集,这可能是在实际测试运行之前部署到SIT数据库实例的测试数据集,然后在测试TearDown中进行清理。
每次测试都应该设置和拆除Web服务吗?
是的,测试应该彼此隔离,所以不应该以任何方式影响每个测试。