最近我从 fixtures 切换到 factory_girl 来测试我的 Ruby on Rails 应用程序。如果我运行 rake test:units,在我的 /units 目录中运行测试,它们都运行得很好。如果我使用 rake test:functionals 运行我的功能测试(在我的 /functional 目录中),情况也是如此。
但是,如果我只是简单地运行 rake 测试,同时运行我的单元测试和功能测试,我的第二组测试(在本例中为功能测试)的验证将失败,并显示消息“验证失败:名称已被采用”。
我相信这是由于功能测试创建的对象与在单元测试中创建的对象具有相同的参数 - 导致我相信在单元测试和功能测试之间没有清除测试数据库。
我使用 factory_girl 的排序来获得对象的唯一属性,这意味着 factory_girl 在测试之间被重置,而数据库则没有。我能做些什么来解决这个问题?有没有办法清除我的两个测试包之间的数据库?