Testing 使用存根服务进行测试

Testing 使用存根服务进行测试,testing,integration-testing,Testing,Integration Testing,我创建了一个存根web服务,以帮助我的团队实现和“集成”测试他们的代码,而无需遍历整个堆栈,这在本例中是不可能的 我想为他们创建一些不同的场景,例如成功、不同类型的失败。我想到的处理这些场景的一种方法是,如果某个特定输入是“Smith”,则返回一个对象,如果“Jones”返回另一个对象 我想知道这个场景映射是否太脆弱,但主要是我如何以一种好的方式管理这些场景,从而允许开发人员扩展场景。一个想法是序列化他们期望的可能结果,并将其与参数一起存储在某种类型的存储库中。这意味着可以对其进行添加和修改。序

我创建了一个存根web服务,以帮助我的团队实现和“集成”测试他们的代码,而无需遍历整个堆栈,这在本例中是不可能的

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

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


感觉我真的错过了一些东西

我真的很喜欢在开发过程中删除web服务之类的东西。它允许开发人员瞄准一个可能还没有准备好的系统,并且仍然可以完成工作。就像你说的那样,它还允许他们早期集成,这很好。当实际服务准备就绪时,应该很容易将存根换成实际服务

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

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

把这些东西删掉是值得的,因为这将极大地提高开发人员的生产率。我不会害怕花一两天的时间来建立一些东西——它会在项目的整个生命周期中得到回报