2010-03-24 52 views
6

我目前的项目使用JSON作为数据交换格式。在开始集成服务之前,前端和后端团队都同意采用JSON结构。有时由于后端团队未通知JSON结构发生变化;它打破了前端代码。如何断言/单元测试服务器JSON响应?

是否有任何外部库可用于比较模拟JSON(灯具)和服务器JSON响应。基本上它应该断言整个JSON对象,并且如果在服务器JSON格式中存在任何违规,应该会引发错误。

附加信息:应用程序基于使用REST JSON服务的JQuery。

回答

6

我会为您的JSON对象推荐一个模式。

我使用Kwalify,但如果您更喜欢该语法,也可以使用Rx

+0

虽然为JSON声明模式很有趣。这是我关于夹具方法的想法;它既可用于测试后端服务的完整性,也可用于脱机或预集成UI开发。 – shazmoh 2010-03-24 03:46:29

+2

不要混合这些东西。使用模式来确保您都了解数据合同。使用后端的固件来做单元测试。混合它们会让你更新太多东西,并会使你的生活复杂化。 – 2010-03-24 03:58:53

3

看起来你试图从另一端解决问题。为什么你应该担任前端开发人员来测试后端开发人员的工作?

在服务器上生成的JSON更适合使用标准方法在服务器上测试,即xUnit中的功能测试。如果您想将测试和文档wiki集于一身,您还可以查看验收测试框架,如FITnesse

如果即使在服务器上引入测试之后,您也会得到无效的JSON,这是人类通信中的问题,而不是测试中的问题。

+1

我不同意。即使后端在单元测试他们自己的代码时应该做的更好,但是有很多次,这有助于确保您正在接收您期望的数据类型。通过快速检查传入的JSON,您可以通过正确地将问题确定为前端或后端来显着缩短调试时间 – Hortitude 2011-09-07 21:14:22

0

由于没有答案,我会把我的两分钱中

如果问题是,你正在处理从后端转向要求,那么你。需要做的是将自己从这些变化中分离出来。在前端和后端之间进行抽象。

也许你可以把这个抽象叫做JSON数据格式交换。因此,当GUI单元测试(希望你是TDD你的Web GUI)时,你将有一个模拟JSON DIF。所以当将后端与前端*集成的时候,任何软件更改都将在抽象层实现中完成。当然,您已经基于商定的JSON结构进行了测试。

OBTW,我认为服务器端团队应该负责指定针对服务器使用的协议。

*这为什么提醒我这个笑话我的屁股和你的脸可能是双胞胎。

相关问题