Ciddi statik yöntemleri de alay gerekiyorsa kod kokusu olduğunu düşünüyorum.
- Ortak işlevselliğe erişmek için statik yöntemler? -> Tek bir örnek kullanın ve
- Üçüncü taraf kodu mu? -> Kendi arayüzünüze / temsilcinize sarın (ve gerekirse tek birton yapın)
Bu benim için aşırı dolu gibi görünen tek zaman, Guava gibi kütüphaneler, ama yine de bu türden alay etmenize gerek yok çünkü mantığın bir parçası ... (Iterables.transform (..) gibi)
Kendi kodunuz bu şekilde temiz kalır, tüm bağımlılıklarınızı temiz bir şekilde alay edebilirsiniz ve dış bağımlılıklara karşı bir yolsuzlukla mücadele katmanınız vardır. PowerMock'u pratikte gördüm ve ihtiyaç duyduğumuz tüm sınıflar kötü tasarlanmıştı. Ayrıca PowerMock'un zaman zaman entegrasyonu ciddi sorunlara neden oldu
(örn. Https://code.google.com/p/powermock/issues/detail?id=355 )
Not: Aynı şey özel yöntemler için de geçerlidir. Testlerin özel yöntemlerin ayrıntıları hakkında bilmesi gerektiğini düşünmüyorum. Eğer bir sınıf o kadar karmaşıksa, özel yöntemleri alay etmek isterse, muhtemelen o sınıfı bölmek için bir işarettir ...