gpt4 book ai didi

javascript - 如何测试 REST API + 客户端 MVC 应用程序?

转载 作者:行者123 更新时间:2023-11-29 22:05:48 26 4
gpt4 key购买 nike

当你有一个 RESTful 服务器,它只通过从数据库中获取一些信息来响应 JSON,然后你有一个客户端应用程序,例如 Backbone、Ember 或 Angular,你从哪一侧测试应用程序?

我是否需要进行两次测试 - 一组用于后端测试,另一组用于前端测试?

我问的原因是单独测试 REST API 有点困难。考虑这个代码示例(使用 Mocha、Supertest、Express):

var request = require('supertest');
var should = require('chai').should();
var app = require('../app');

describe('GET /api/v1/people/:id', function() {
it('should respond with a single person instance', function(done) {
request(app)
.get('/api/v1/people/:id')
.expect(200)
.end(function(err, res) {
var json = res.body;
json.should.have.property('name');
done();
});
});
});

注意到 url 中的 :id 了吗?那是特定人的 ObjectId。我怎么知道要传递什么?此时我什至还没有查看数据库。这是否意味着我需要导入 Person 模型、连接到数据库并从测试中进行查询?也许我应该将我的整个 app.js 移到测试中? (讽刺:P)。这是很多耦合。单独依赖 mongoose 意味着我需要在本地运行 MongoDB 才能运行此测试。我查看了 sinon.js,但我不确定它是否适用于此处。关于如何对 mongoose 进行 stub 的示例并不多。

我很好奇人们如何测试这些类型的应用程序?

最佳答案

您是否尝试过使用 mongoose-model-stub在你的服务器端测试?它将使您不必为测试记住或硬编码数据库信息。

至于测试客户端,您的“webapp”基本上是两个应用程序:一个服务器 API 和一个客户端前端。理想情况下,您需要对两者进行测试。您已经知道如何测试您的服务器。在客户端上,您将使用 API 中 stub 的“响应”(基本上是伪造的 json 字符串,看起来像您的 Web 服务吐出的内容)来测试您的方法。这些不一定是实时网址;相反,如果它们只是您可以根据需要编辑的静态文件,那可能是最好的。

关于javascript - 如何测试 REST API + 客户端 MVC 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com