Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不更改数据库的情况下测试POST-to-API的策略_Javascript_Node.js_Http_Jasmine_Jasmine Node - Fatal编程技术网

Javascript 在不更改数据库的情况下测试POST-to-API的策略

Javascript 在不更改数据库的情况下测试POST-to-API的策略,javascript,node.js,http,jasmine,jasmine-node,Javascript,Node.js,Http,Jasmine,Jasmine Node,我正在使用它来测试我的API,它对我的GET路由非常有效。然而,现在我需要测试一些帖子,我不知道如何在不改变数据库的情况下进行测试 我的一个想法是在每个规范结束时重置我更改的任何值 这是否合理,或者是否有更好的方法来测试对我的API的POST请求?只需创建一个重复的处理页面/函数,并将数据发送到该页面进行调试。注释掉对数据库进行更改的任何内容 或者,在调用中传递一个变量,例如“debug”,并在原始函数中设置一个if/else部分进行调试,忽略函数的其余部分 另一种选择仍然是复制数据库表并将其命

我正在使用它来测试我的API,它对我的GET路由非常有效。然而,现在我需要测试一些帖子,我不知道如何在不改变数据库的情况下进行测试

我的一个想法是在每个规范结束时重置我更改的任何值


这是否合理,或者是否有更好的方法来测试对我的API的POST请求?

只需创建一个重复的处理页面/函数,并将数据发送到该页面进行调试。注释掉对数据库进行更改的任何内容

或者,在调用中传递一个变量,例如“debug”,并在原始函数中设置一个if/else部分进行调试,忽略函数的其余部分


另一种选择仍然是复制数据库表并将其命名为debug table。它的结构将与您原来的相同。将测试数据发送到它,它不会更改原始数据库表。

将任何修改数据库的内容包装到事务中。您可以更改数据库,然后在每次测试后回滚。

通常您应该有一个测试数据库,因此修改该数据库不是一个大问题。此外,一般的方法不是依赖于数据库上的预定义值(即GET始终请求相同的对象…),而是每次尝试使用不同的对象。(当数据稍有不同时,使用预定义对象可能会隐藏问题…)。
为了实现第二种策略,您可以使用带有伪随机数据的POST执行一个测试,以创建一个新对象,并使用返回的ID提供以下GET、UPDATE和DELETE测试

我敢肯定你已经想出了解决问题的办法

但是,如果你不这样做,角度会解决你的问题。这是一个

伪HTTP后端实现,适用于使用$HTTP服务的单元测试应用程序