Unit testing 依赖于外部服务的集成测试

Unit testing 依赖于外部服务的集成测试,unit-testing,integration-testing,functional-testing,fixtures,Unit Testing,Integration Testing,Functional Testing,Fixtures,我目前正在为我的系统编写集成/功能测试。部分功能是通过http(我运行的另一个系统)访问web服务 我应该如何设置web服务的测试实例来进行良好的功能测试?我想让我的系统使用实时生产数据运行此服务 web服务是否应该是一个独立的实例,始终具有我手动重新加载的实时生产数据(可能在每次启动它的实例时重置) web服务是否应该在每次测试中都进行设置和分解 处理这种情况的一些常见做法是什么?首先,请确保您了解和之间的区别。您可以做一个相当好的功能测试,而无需进行集成测试(实例化web服务、访问数据库)所

我目前正在为我的系统编写集成/功能测试。部分功能是通过http(我运行的另一个系统)访问web服务

我应该如何设置web服务的测试实例来进行良好的功能测试?我想让我的系统使用实时生产数据运行此服务

web服务是否应该是一个独立的实例,始终具有我手动重新加载的实时生产数据(可能在每次启动它的实例时重置)

web服务是否应该在每次测试中都进行设置和分解


处理这种情况的一些常见做法是什么?

首先,请确保您了解和之间的区别。您可以做一个相当好的功能测试,而无需进行集成测试(实例化web服务、访问数据库)所需的大量工作。基本上,这项技术甚至可以很好地模拟数据层响应和web服务行为(我相信像HTTP这样的细节在大多数测试用例中都可以忽略)

对于此类集成测试,我建议使用一个单独的SIT环境,其中包括一个单独的Web服务和一个数据库

web服务是否应该是始终具有实时生产数据的独立实例 手动重新加载(可能在每次启动它的实例时重置)

是的,它应该是完全独立的,但数据可以手动生成/准备。例如,您可以准备一些允许测试一些预定义测试用例的数据集,这些数据集可以是在实际测试运行之前部署到SIT DB实例的测试数据集,然后在测试拆卸中进行清理

web服务是否应该在每次测试中都进行设置和分解

是的,测试应该彼此隔离,所以不应该以任何方式影响每个测试