使用 stub 服务进行测试

标签 testing integration-testing

我创建了一个 stub 网络服务来帮助我的团队实现和“集成”测试他们的代码,而无需遍历整个堆栈,这在这种情况下是不可能的。

我想为他们创造一些不同的场景,例如成功,不同类型的失败。我想到处理这些场景的一种方法是,如果一个特定的输入是,例如如果“Jones”返回另一个对象,则“Smith”返回一个对象。

我想知道这个场景映射是否太脆弱,但主要是我如何以一种允许开发人员扩展场景的好方法来管理这些场景。一个想法是序列化他们期望的可能结果,并将它们与他们的参数一起存储在某种存储库中。这意味着可以添加和修改它们。序列化可能会中断,对于复杂的对象来说,这会很尴尬。

感觉我真的在这里错过了什么!

最佳答案

我真的很喜欢在开发过程中剔除 Web 服务之类的东西。它允许开发人员以可能尚未准备好的系统为目标,并且仍然可以完成工作。就像你说的那样,它还可以让他们尽早融入,这很棒。当实际服务准备就绪时,应该很容易为实际服务换出 stub 。

我认为创建一个模仿实际 Web 服务调用的简单/快速和肮脏的存储库是完全可以的。输入一组参数,然后返回一些数据。

考虑花几个小时编写一个为您生成代码/数据结构的工具。您可以编写生成随机数据(名称、地址等)的函数,然后很容易更改参数并重新生成 stub 数据/ stub 代码。

将内容 stub 是值得的,因为它会显着提高开发人员的工作效率。我不会害怕花一两天时间来设置一些东西 - 它会在项目的整个生命周期内得到返回。

关于使用 stub 服务进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485904/

相关文章:

java - 在 Heroku CI 期间启动应用程序

ruby-on-rails - 如何使用 RSpec 和 Capybara 单击图像作为链接

testing - 我如何验证我的所有 Assets 都已预编译

asp.net - Jmeter 发布请求在执行时显示为获取请求(ASP DOTNET)

spring - 为什么从 GroovyTestCase 继承会导致 Grails 2.2 中出现 Spring 错误?

azure - 与 Docker 集成测试 Azure 服务总线

ruby-on-rails-4 - FactoryGirl 在工厂中设置 updated_at 属性

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript

Grails Connections 在集成测试中表现非常不同

c# - 如何测试 3rd 方 API。我应该创建单元测试还是集成测试?