你真的與廠家男孩測試?使用內存中的sqlite數據庫,根據我的經驗,它非常快速,並且使用層次結構非常方便。
您的數據庫想法或多或少與fixtures相同 - 您可以使用數據庫創建JSON夾具,方法是在其上運行dumpdata
管理命令,並將測試數據保存在數據庫中而不是JSON文件中。
一些原因在測試數據庫偏愛男孩的工廠:生成的數據正確的,在測試中,所以它是立即明顯發生了什麼以及哪些字段
是相關的測試。
數據自帶的測試代碼,沒有多餘的文件或數據庫轉儲來管理。
廠男孩非常好,層次(「我想這種情況下與所有字段的默認值的情況下,除了這一個領域的六個步驟了層次結構中的」 - instance = InstanceFactory.build(series__study__patient__archive__project__algorithm_type='foo')
)
有時,對象不必一定要保存到數據庫中,以便對其方法進行測試,在這種情況下,工廠男孩的.build()
速度非常快。
而是挑選有趣的邊界情況下,當前測試,你會受到誘惑,只是重新使用已有的東西在數據庫中,沒有發現錯誤。
也許你需要不能在數據庫中,同時由於唯一性約束存在,以測試不同的值。
有可能更多,但我需要睡覺。
你有什麼試過?也許我誤解了,但django默認使用Sqlite,並且改變爲MySql或Postgres就像改變你的'settings.py'一樣簡單。 –
@GregSchmit:他問的是獲取單元測試數據庫中測試數據的不同方法。 – RemcoGerlich