我正在處理的情況是,根據聲明的順序,我的測試通過或失敗。這當然指向不正確的隔離測試。但我很難理解如何去尋找問題。 事情是我的junit測試派生自一個屬於在junit上構建的測試框架並具有一些依賴注入容器的類。容器被基類設置重置爲每個測試,所以至少在容器中沒有延遲的對象,因爲容器本身是新的。所以我傾向於以下場景。如何解決間歇性junit測試失敗問題?
- test1間接導致某些classA將classA.somestaticMember設置爲xyz值。測試obj不直接維護對classA的任何引用 - 但是當test1結束時,classA仍然由vm通過值xyz加載。
- test2訪問classA並跳到某個具有xyz值的靜態成員上。
問題是a)我不知道這是否確實如此 - 我該如何去尋找?我似乎無法找到代碼中的靜態變量的引用... b)有沒有辦法告訴junit轉儲所有已加載的類並重新執行每個測試方法?
如果您的測試依賴於執行順序而失敗,那麼它們並不是真正的單元測試。那,或者你沒有利用夾具。 – cHao