RoR:在测试前保持记录状态

时间:2017-06-12 14:41:09

标签: ruby-on-rails ruby devise factory-bot

我试图在Ruby on Rails上运行一些测试,但我不知道在测试时如何保持记录。我试过了:

private void batchRootFolderText_TextChanged(object sender, EventArgs e){
    if (!batchRootFolderText.Text.EndsWith("\\")){
        String temp = batchRootFolderText.Text;
        temp = temp.Substring(0, MyString.Length - 1);
        batchRootFolderText.Text = temp + "\\";
    }
} 

但我得到一个错误(重复),因为它在每次测试之前都在运行。

  

重复键值违反了唯一约束" index_users_on_email"

https://github.com/plataformatec/devise#integration-tests

如何在所有测试中仅记录一次?

1 个答案:

答案 0 :(得分:1)

如果这是评论,但无法对其进行格式化,请将其放在此处。

为什么您只想为所有测试登录一次? 从理论上讲,孤立测试的目的是让每个单元像单个交互一样运行。

如果您想在整个套件之前调用一次,可以将它放在规范助手中:

config.before(:suite) do
   # Do Something Once
end

您在谈论功能规格吗?楷模?控制器?

但是看看你发布的内容,看来你可能正在谈论一个功能规范,在这种情况下,我会说不要这样做。让用户登录每个规范。

旁注: 注意到您的错误,您需要确保在运行每个规范之前清理数据库。请查看Database Cleaner Gem。这将允许您为每个规范重新创建该用户。