编辑#2:有没有人有一个很好的方法来测试客户端 - 服务器应用程序的“中间”,我们可以拦截请求和响应,根据需要伪造客户端或服务器,并提供api的自我记录?测试JSON客户端服务器API的推荐方法是什么?
在许多情况下,黄瓜可能是一个很好的解决方案,但它不是我想要的。这个中间层应该是客户端/服务器实现不可知的。 (例如,黑盒子)。
我们的客户端 - 服务器模型是红宝石上轨服务器与Flex客户端,使用具有JSON一个RESTish接口作为数据格式。因此,客户端发布到服务器的任何内容通常都是单个JSON参数。服务器完成这件事,并用纯JSON模型进行响应。
我们在服务器上进行标准的rails测试,我们正在努力在客户端上完成正确的FlexUnit测试(这是一个移动的目标)。然而,我的团队对于当前测试模型的有效性存在争议,因为服务器上的每个更改似乎都会破坏API的一部分。这告诉我,API通信(团队成员之间,代码中的自我文档等)都存在问题,并且缺乏适当的API完整性测试。
所以我一直在质疑我们是否需要一个模拟客户端来测试纯JSON级别的服务器(没有富客户端的所有其他复杂性),并且可能还需要模拟服务器来做同样的事情与富客户端。这将有两个目的,记录API并提供API本身的更彻底测试。
有一个争论的原因是Rails的人声称,Rails集成测试足以测试所有的服务器请求,而中间地面测试环境只是多余的。
所以这里的问题是,根据我们的情况,应该如何去自我记录API,我们应该如何测试API本身?
编辑:
我们有像/foo/444/bar.js路线,但参数可以根据实际行动上任何复杂的JSON字符串,如:
json={
"foo":{
"x":1,
"y":2
},
"bar":[1,2,3,4,5]
}
但除了手动编辑的API文档,没有自我文档。轨道控制器通常只是反序列化并将更改直接应用于模型。很高兴有共同的测试告诉我们什么时候改变,和什么预计。
这看起来像我在找的东西,但很难说。他们的文档有点粗略。 – Glenn 2009-09-11 22:41:47