在不改变数据库的情况下testingPOST到API的策略

我正在使用jasmine-node来testing我的API,并且它对我的GET路由非常有用。 现在,但是,我需要testing一些职位,我不知道如何去改变我的数据库。

我以为有一个想法就是在每个规范的最后重置我改变的任何价值。

这是合理的还是有更好的方法去testingPOST请求到我的API?

       

网上收集的解决方案 "在不改变数据库的情况下testingPOST到API的策略"

将任何修改你的数据库的东西包装成一个事务。 您可以更改数据库,然后在每次testing之后回滚。

只需要创build一个重复的处理页面/函数,并将数据发送到debugging。 注释掉任何对数据库进行更改的东西。

或者,在调用中传递一个variables(如“debug”),并在原始函数中包含if / else部分以进行debugging,而忽略该函数的其余部分。

另一种替代方法仍然是复制数据库表并将其命名为debugging表。 它的结构与原来的一样。 将testing数据发送给它,它不会更改您的原始数据库表。

通常你应该有一个testing数据库,所以修改一个不是一个大问题。 另外,一般的方法是不依赖于数据库的预定义值(即,GET总是请求SAME对象),但是每次尝试不同的对象。 (使用预定义的对象可能会隐藏问题,当数据略有不同..)。 为了实现第二个策略,可以使用伪随机数据的POST执行一个testing来创build一个新的对象,并使用返回的ID来提供以下GET,UPDATE和最后的DELETEtesting。

我很确定你已经为你的问题提出了一些解决scheme。

但是,如果你不这样做,Angular $ httpBackend将解决你的问题。 它是一个

假的HTTP后端实现适用于使用$ http服务的unit testing应用程序。