Json 单元测试RESTAPI
我有一些单元测试和模拟的经验。在我有限的经验中,我将使用这两种方法来测试服务层,例如,模拟(stubing?)数据库以消除依赖关系,并集中精力对业务逻辑进行单元测试 现在,我正在创建一个将使用RESTful web服务的包装器API实现。返回给我的json结果结构已经超出了我的控制范围,例如:Twitter。我只是简单地构建客户机以与他们的api接口。我不确定如何对json结果进行单元测试。现在我只是用静态json结构模拟http请求的结果。这确保了json到POJO的反序列化是正确的,但我担心API的变化。如果api结构发生变化怎么办?如果api现在返回“title”而明天返回“groovy_title”呢?我的单元测试不会发现这一点Json 单元测试RESTAPI,json,unit-testing,rest,mocking,Json,Unit Testing,Rest,Mocking,我有一些单元测试和模拟的经验。在我有限的经验中,我将使用这两种方法来测试服务层,例如,模拟(stubing?)数据库以消除依赖关系,并集中精力对业务逻辑进行单元测试 现在,我正在创建一个将使用RESTful web服务的包装器API实现。返回给我的json结果结构已经超出了我的控制范围,例如:Twitter。我只是简单地构建客户机以与他们的api接口。我不确定如何对json结果进行单元测试。现在我只是用静态json结构模拟http请求的结果。这确保了json到POJO的反序列化是正确的,但我担心
但据我的理解,单元测试应该很快。以前我会模拟db,现在我模拟http,但我是否应该使用具体的http实现,以便立即收到api更改的通知?或者有更好的方法来处理这种情况吗?我将继续做您正在做的事情,并模拟代码和外部API之间的接口。正如您所指出的,这不会检测到外部API中的更改 您可以编写集成测试,这些测试实际上会转到外部服务器以测试API更改。我怀疑您已经将进行交互的代码分离到了自己的服务器/模块中,这样您就可以直接ping外部API,而不会被应用程序中超过1个抽象层所阻碍 注意,您可以不使用应用程序代码构建这些测试;i、 只需wget或curl并对结果进行一些分析 这方面的问题很多;不经意间: 您需要网络连接
慢一点
外部服务可能暂时关闭,即故障可能意味着不同的事情。
等等