【问题标题】:When using cucumber and databasecleaner can I keep a single entry in a table?使用 cucumber 和 databasecleaner 时,我可以在表中保留一个条目吗?
【发布时间】:2012-10-31 13:46:02
【问题描述】:

我目前正在使用 cucumber 和 databasecleaner 来测试我的应用程序。 目前在我的env.rb 中,我将清洁器设置为:

DatabaseCleaner.strategy = :truncation, {:except => %w[TABLE]}
After do
  DatabaseCleaner.clean
end

这样我可以将数据保存在TABLE 中。 但我也想在测试之间在不同的表中保留一个条目。有什么方法可以实现,还是我必须一直使用Before 钩子重新创建它?

【问题讨论】:

  • 所以您想从第二个表中删除除一行之外的所有行?

标签: database testing cucumber database-cleaner


【解决方案1】:

我能想到这个技巧。在测试 ENV DB 的该表上添加 ON DELETE trigger。触发器调用插入行的函数。如果行已经存在,您可能需要在函数中添加一个检查以不执行任何操作。

【讨论】:

  • 你能给我举个例子吗?我不确定你打算怎么做,我应该编辑我的数据库吗??
  • 是的,您必须修改您的测试数据库。例如。在 postgres CREATE TRIGGER my_trigger AFTER DELETE ON my_table FOR EACH ROW EXECUTE PROCEDURE add_row(); 创建触发器并且您还必须在数据库中创建函数 add_row() 如果该行不存在则插入该行
  • 我无法编辑数据库,它超出了我的控制范围,所有模型视图和控件也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多