【问题标题】:how to test server REST API with testem如何使用 testem 测试服务器 REST API
【发布时间】:2014-08-20 11:08:03
【问题描述】:

Testem 有一个配置选项serve_files 为我提供客户端代码。但是我需要运行我的服务器,因为它有一个REST API,并且客户端使用它。

如何配置 testem 在运行测试之前运行我的服务器?还是这违反了测试规则?

因为 testem 在另一个端口上运行,而我对 rest api 的 rest api 引用将不起作用。 所以我需要告诉 testem 绕过 serve_files 并启动我的实际服务器并从那里测试文件。

PS:或者另一种选择是用 sinonjs 或其他东西对 api 进行存根,这是一种正确的方法吗?那么我就不会真正使用 API 使用 ember 生成的模板来测试我的 API。

【问题讨论】:

  • 我无法回答您的问题,但我可以说两周前我遇到了同样的问题。我最终使用本地存储适配器将数据保存在客户端上,从而无需服务器。如果这是您的选择,我认为这是测试您的应用程序的更好方法。
  • @GJK 你的意思是夹具,我认为真正的服务器是更好的方式,应该很简单。
  • supertest module 是在 node.js 中对 REST API 进行单元测试的完美工具。
  • @LeonidBeschastny 我会检查一下,我还是应该模拟 API 什么的。
  • API Proxy 选项有帮助吗?

标签: javascript node.js ember.js karma-runner testem


【解决方案1】:

您可以使用API Proxy 设置:

代理选项允许您透明地将 http 请求转发到外部端点。

只需在 testem.json 配置文件中添加一个代理部分。

{ "proxies": { "/api": { "port": 4200, "host": "localhost" }, "/xmlapi": { "port": 8000, "host": "localhost" } } }

此功能是作为透明代理实现的,因此对http://localhost:7357/api/posts.json 的请求将被代理到http://localhost:4200/api/posts.json,而无需删除 /api 前缀。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
猜你喜欢
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 2019-12-17
  • 2015-06-04
  • 1970-01-01
相关资源
最近更新 更多