Javascript 我应该选择哪一方来测试RESTAPI?

Javascript 我应该选择哪一方来测试RESTAPI?,javascript,scala,rest,acceptance-testing,Javascript,Scala,Rest,Acceptance Testing,我正在使用Scala和Play框架2开发RESTAPI。看起来现在是为这个web服务编写验收规范的好时机。此API有两种用户:网站和ipad应用程序 所以,问题是我应该选择哪一方来编写验收规范 更具体地说,根据验收规范,我指的是此类试验: "user" should { "be able to register with login, email and pass" in { ... // registration process here } } 这是我的清单 服务器

我正在使用Scala和Play框架2开发RESTAPI。看起来现在是为这个web服务编写验收规范的好时机。此API有两种用户:网站和ipad应用程序

所以,问题是我应该选择哪一方来编写验收规范


更具体地说,根据验收规范,我指的是此类试验:

"user" should {
  "be able to register with login, email and pass" in {
      ... // registration process here
   }
}
这是我的清单

服务器端(scala+specs2)

  • [+]易于集成到构建过程中
  • [+]更熟悉scala
  • [-]容易遗漏某些特定于浏览器的详细信息(例如CORS)
客户端(js+简单ajax或一些测试框架)

  • [-]更难自动化(需要node.js、v8、phantomJS或类似的东西)
  • [-]更熟悉scala
  • [+]所有浏览器详细信息都已考虑在内
  • [+]自己吃狗粮。能够将服务器端api用作客户端程序员
  • [+]类客户端程序员的示例

在我看来,您称之为“服务器端”的测试可以是单元测试,它们应该快速并集成到构建过程中,在那里您应该测试API的正确性,而不是像CORS这样属于客户端的功能

对于我建议您使用的客户端,它是一个浏览器插件,允许您记录操作并断言页面上发生的事情,允许您稍后回放所有操作,速度比人类快得多

不过,我没有将其集成到构建工作流中的经验,因此,如果您需要将其也集成到构建过程中,我建议您进行评估,它具有出色的文档和有用的测试功能


如果您只需要验收测试,我肯定会在前端进行。

我相信对于验收测试,您只需要使用BDD框架进行服务器端测试即可轻松完成

如果通过JavaScript进行测试,听起来更像是集成测试

所以我认为,在RESTAPI范围内,为了确保您的RESTAPI是可接受的,您需要实现一个测试,而不必关心谁是消费者,并且只在API的简单请求得到响应时进行测试

但是在客户端范围内,您需要保证使用restapi响应的代码是好的,因此您需要模拟restapi(对于javascript I recomend或)

然后,要测试所有系统是否正确,您需要使用一个工具,如

我希望这对你有帮助