2017-07-31 88 views
0

我們試圖在我們的項目中使用Feign + Ribbon。在生產代碼中,我們沒有問題,但是我們在jUnit測試中有一些問題。Feign with Ribbon:重置

我們試圖模擬許多情況(失敗的服務,正常運行,異常等),因此我們需要多次配置功能區集成。不幸的是,我們注意到,即使我們銷燬Spring上下文,狀態的一部分仍然可能存在於靜態變量的某處(例如:新測試仍然連接到上一個套件中的平衡器)。

有沒有推薦的方法,如何清除這兩個工具的靜態? (類似Hystrix.reset())

在此先感謝!


我們試圖每個套件後重置JVM - 它的作品完美,但它不是很實用(我們必須將其設置在兩個搖籃和Idea(作爲思想試驗TUNNER不接受這個開箱) )。我們也嘗試重命名測試的服務 - 這適用於可以說,99%(有時會由於某種原因失敗...)

回答

0

你應該提交bug到色帶如果是這種情況,有一些靜態的某處。找出最小代碼導致問題的原因,如果你無法做到這一點,但他們不會做任何事情。在您的代碼庫中,您應該搜索任何不是最終的靜態使用,並重構它們(如果存在)。

此外,您可能會發現在各種不同類型的測試之間做出強烈的區分是有用的。這聽起來不像你正在爲我做單元測試。即使你只是模擬這些服務,並模擬故障,這種測試是一個真正的集成測試,因爲你如果帶子是用自己的組件,這實在是一個集成測試配置正確的測試。這將是一個單元測試,如果你僅測試您的組件被正確配置功能區,不知道我是否有意義有哈哈這是一個微妙的區別,但它在您的測試很大的影響。

在另一張筆記上,不要忽視你現在擁有的一定是一個壞主意。這可能是有一些重量級集成測試檢查假死的行爲,如果這是一個關鍵任務功能是非常有用的,海事組織它在這種情況下,一個偉大的想法。但這是一個重量級的綜合測試,應該這樣對待。您甚至可能希望使用某些容器魔術來實現這種測試,並且在各種不同的故障情況下都會失敗。這將住在CI以及與每個提交,除非他們直接就集成了一塊功能工作通常開發商將不能運行那些傢伙。