node.js:为类似API的社交网络编写测试用例

node.js:为类似API的社交网络编写测试用例,node.js,mongoose,integration-testing,mocha.js,chai,Node.js,Mongoose,Integration Testing,Mocha.js,Chai,我正在为学习视角的社交网络web应用程序开发API。当我开始编写测试用例时,我一直在思考如何组织/编写测试用例 首次设置全局数据库初始化: 我需要一些用户的身份验证令牌来测试我的路由,所以我决定在全局上下文中设置这些信息。还有其他信息也需要在全局上下文中设置,所以我也在设置它 然后对于每条路线: 我开始写测试用例,我想我会用 这样,每个路由测试用例将相互独立 完成所有测试套件后: 我想我会清理我的数据库 这种方法面临的问题是: 假设我想测试名为/users、/users/:id/my_inve

我正在为学习视角的社交网络web应用程序开发API。当我开始编写测试用例时,我一直在思考如何组织/编写测试用例

首次设置全局数据库初始化: 我需要一些用户的身份验证令牌来测试我的路由,所以我决定在全局上下文中设置这些信息。还有其他信息也需要在全局上下文中设置,所以我也在设置它

然后对于每条路线: 我开始写测试用例,我想我会用 这样,每个路由测试用例将相互独立

完成所有测试套件后: 我想我会清理我的数据库


这种方法面临的问题是:

假设我想测试名为/users/users/:id/my_invests/send_invests/response_invests的四条路由。进一步假设我只对为/users/users/:id/invests编写GET请求和响应测试用例感兴趣,并在其他情况下发布数据。 /send\u invests/response\u invests肯定会在服务器端触发一些修改数据库状态的操作

正如我们看到的,这些路由会影响其他路由数据的状态,比如一个用户向另一个用户发送邀请,并得到正确/错误的响应,因此对于该用户来说,他的请求是成功的,但是如果我们不检查他收到的邀请文档(即通过另一个路由),如何确保另一个用户实际收到了邀请在第一个路由测试用例中。表示/send\u邀请影响/users/:id/my\u邀请


因为这些路线相互依赖

So The questions I want to ask are:
如何为这些路由编写测试用例,以便每个路由都是独立的

我试着在全局上下文中测试三个虚拟用户,并在所有测试套件中为他们尝试各种组合。我的测试套件目前处理多个路由,以检查1个路由的真实功能

Can anyone suggest me better solution for writing test cases for the above mentioned scenarios?
可能是我的问题太长或不清楚。如果可以,请告诉我并帮助我

我的意见:

首先,每个测试用例都应该有一个新的状态。这意味着在检查一个场景之前,您需要刷新数据库并插入为测试该场景而准备的新数据。您可以使用一个真实的数据库来模拟内存中有数据的数据库,或者使用您喜欢的方式

其次,每个端点都可能影响数据库中的许多表。因此,检查数据状态是完全正常的,与检查信息是否正确的表无关

mocha和其他测试框架都有帮助您实现这一点的功能。像beforeach和afterEach一样,在每个测试用例之前设置和删除数据