2014-02-21 30 views
0

我對如何實現behat/mink功能測試有疑問。 在我的網絡應用程序中,如果用戶具有所需的憑據(即無訪問/只讀/寫入),則可以訪問某些數據表。用上下文測試的Behat/Mink策略

我希望能夠通過behat/mink測試所有可能的上下文。 問題是這種測試的最佳做法是什麼? 有些開發人員告訴我,我必須爲每個想要使用的用戶類型創建一個場景。然後,我將不得不使用我在其他測試中創建的用戶。 但我對這個想法不是很滿意:我相信它會在我的測試之間引入耦合。如果創建用戶的測試失敗,那麼檢查通過我的數據表訪問該特定用戶的測試也將失敗。

所以,我相信我可以使用一些燈具:在測試我的應用程序之前,我運行一個腳本,它將插入我需要的所有配置文件。我將進行一些專門用於創建用戶的測試,並且我將使用燈具來檢查是否允許特定用戶訪問特定的數據表。 與此解決方案相對應的是,我將不得不維護固定裝置。

你有什麼建議嗎?

回答

1

嗨user3333860(什麼是用戶名XD),

我沒有測試,這些天的專家,我更對紅寶石/ RSpec的,但我個人認爲,這兩種解決方案是好的,被使用。

使用一項功能來創建您的用戶: 如果您的創建用戶測試失敗,這可能意味着您的用戶創建重構也被搞砸了。 所以其他測試失敗的事實似乎並不是我的缺點。但我確實明白,你不想在你的測試之間進行耦合。 重點是,您的測試是以靜態順序運行還是以隨機方式運行(即:rspec不總是以相同的順序啓動測試),並準備好在不同的功能中多次運行相同的測試您的其他測試可以成功完成。

使用固定裝置: 那麼這也是一個很好的和受歡迎的解決方案(實際上,我使用的解決方案),你已經指出你必須維護的事實。

最後,我會拿燈具路徑只能用工具幫助像FactoryGirl,可以幫助你保持你的對象模板(這裏是它的PHP版本) https://github.com/breerly/factory-girl-php

希望我與你的困境幫助。