单元测试和固定装置

时间:2010-05-05 10:49:30

标签: unit-testing fixtures

我们有一系列单元测试,可以测试很多网页和REST API服务。

目前,当我们的测试运行时,它会从这些页面中拉出来,但这可能需要很长时间才能运行,而且感觉测试应该测试更多我们的代码 - 而不仅仅是依赖它们正在响应(如果是有道理..)。

更好的做法是保存有效的api响应,并且单元测试会在安装过程中加载它吗?

思想?

3 个答案:

答案 0 :(得分:4)

这听起来好像你一次试图测试太多了。

您应该测试生成Rest API响应的代码(如果此代码在您的cotrole下),并且代码完全单独使用它。如果您不控制生成API的代码,您应该使用伪造的,有效的API答案来提供代码并将其用于测试。

依赖于正在启动和响应的页面听起来更像集成测试。如果您依赖外部API,那么通过集成测试来验证API仍然按照您的预期运行总是很有趣。

答案 1 :(得分:0)

我更愿意使用测试/模拟数据源而不是实际的实时数据源。这样您就可以在不实际使用网络资源的情况下读取数据并提供更好的性能(取决于您的体系结构,您可能会或者可能不容易切换您使用的数据源)。

但同样重要的是,它可以让您使用您提供的数据,并让您测试边缘情况,无效的数据响应等。根据您的应用程序对数据的处理,这可能很重要。

答案 2 :(得分:0)

我要处理的方法是使用模拟。让我们假设您有一个负责调用外部服务的类,以及一个使用这些结果的单独类。您可以创建一个调用服务的类的模拟,并返回您想要的任何特定结果。然后,您可以测试需要结果的类,而无需处理任何外部调用。

http://en.wikipedia.org/wiki/Mock_object
http://martinfowler.com/articles/mocksArentStubs.html