2012-09-13 57 views
1

我對RSpec有點新鮮。Ruby on Rails RSpec擦除數據庫

我想運行一些示例Rspec的規範(使用耙規格命令),具有

config.use_transactional_fixtures =假

在配置文件中,因爲它是一些手冊中推薦的。

但是,它仍然抹去數據庫,它只是挫敗我,因爲我有它的敏感數據,現在它都沒有了。到底是誰在測試過程中想出清理數據庫的想法?

如何避免此行爲?

在此先感謝!

回答

2

交易是爲了確保您的測試數據庫保持清潔,以便您的測試保持乾淨和可預測。你應該使用它們。要爲單個示例組關閉它們,請在描述行之後使用self.use_transactional_fixtures = false。但是,如果你這樣做,需要一個after(:each)塊,然後清理。

我不明白你爲什麼在你的測試數據庫中有敏感數據,聽起來像你在那裏做錯了什麼。

+0

所以你說我不能完全關閉此功能? – Dmitri

+0

我該怎麼辦?嗯?例如,如果我的網絡應用程序已經啓動並正在運行,我應該怎麼做?測試一些新功能並清除所有數據?或者是什麼 ? – Dmitri

+0

您應該可以使用您用來關閉它的設置,但是如果它仍然清除數據,就會發現您的連接錯誤。我真的建議你保持它,除非你在測試後自己清理整個數據庫。如果這是不可接受的,那麼你做一些非常錯誤的事情,你不應該用你設置的測試編寫測試,因爲它們不可靠。 – FluffyJack