配置测试数据库,以便在针对特定规范文件运行测试后不清除数据

时间:2014-10-27 14:53:26

标签: ruby-on-rails ruby testing rspec

我目前正在为Rails API(Rails 4)编写Rspec测试。我有一个特定的规范,需要为文件中的每个测试保留和重用令牌。

但是,在每个itdescribe块之后,数据库将被擦除并生成新令牌。

一旦运行了所有这十个左右的测试,数据库就可以自由清理。

一些上下文

对象(令牌)本身是在GET请求到终点时生成的。来自同一用户的第二个GET请求将使用相同的令牌返回一组新结果,同时记住用户刚刚请求的内容。

这是我试图测试的这种互动。

问题

人们会推荐哪些工具可以提供此功能?我需要一个特定的对象来持久存储在数据库中

或者,人们会怎么建议我解决这个问题?

我一直在寻找配置数据库清理程序gem的方法,但是没有找到任何关于为此类特定情况配置数据库清理的提及。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以将Rspec配置为在所有测试之前和之后运行一些代码

RSpec.configure do |config|

  config.before :all do
    # create token
  end

  config.after :all do
    # delete token
    DatabaseCleaner.clean
  end

end