2016-07-26 155 views
0

是否有可能在事務中包裝每個後續測試並在每次測試結束時回滾?推薦使用sequelize實現這一點的方法是什麼?續集交易測試

而且將它的工作,如果被測代碼也打開一個交易?(嵌套事務)

感謝

回答

1

我不相信Sequelize支持嵌套事務。

聽起來好像你正試圖保持測試之間的隔離,以便一次測試中的變化不會影響另一次測試。我的團隊通過在beforeEach聲明中填充測試數據庫中的夾具數據並截斷afterEach聲明中受影響的表格來完成此操作。使用這種方法測試運行相當快。

+0

我們也在使用這種方法。在事務中封裝測試的原因是爲了防止我們在每次測試中都截斷所有表以清理數據庫。由於我們的測試套件相當大,我們已經確定截斷是每次測試中花費最多時間的部分。 – user1990009

+0

也許你已經這樣做了,但是你可以嘗試縮小清理步驟的重點,並按照「describe」塊進行配置,以便截斷受每個測試塊影響的少數幾個表。例如,如果你正在測試你的'User'模型,那麼在這個文件中添加一個'afterEach',這個文件只會截斷'User'表。 –