मैं एक वर्ग का परीक्षण करने की कोशिश कर रहा हूं जो किसी अन्य वर्ग से स्थिर डेटा का संदर्भ देता है। मैं इस स्थैतिक वर्ग का उपयोग नहीं कर सकता, लेकिन स्पष्ट रूप से कई परीक्षण चलाना समस्याग्रस्त हो गया है। तो मेरा सवाल ये है। एक स्थैतिक वर्ग को फिर से शुरू करने के लिए जूनिट परीक्षण में कोई तरीका है? इस तरह एक परीक्षण पिछले परीक्षण से प्रभावित नहीं होता है?जावा में एक स्थैतिक वर्ग को फिर से शुरू करने का कोई तरीका है?
तो दूसरे शब्दों में कुछ ऐसा करने का तरीका:
Foo.setBar("Hello");
// Somehow reinitialize Foo
String bar = Foo.getBar(); // Gets default value of bar rather than "Hello"
दुर्भाग्य से, मैं फू को बदल नहीं सकते, इसलिए मैं इसे प्रयोग अटक कर रहा हूँ।
संपादित करें ऐसा प्रतीत होता है कि मैंने अपना उदाहरण थोड़ा सा सरल बना दिया। वास्तविक कोड "बार" में सिस्टम प्रॉपर्टी द्वारा सेट किया जाता है और एक आंतरिक स्थिर चर पर सेट हो जाता है। तो एक बार यह दौड़ना शुरू हो जाने पर, मैं इसे बदल नहीं सकता।
यह स्पष्ट नहीं है कि तुम क्या कह रहे हैं। क्या आप एक विशिष्ट समय (कब?) पर कोड चलाने के लिए एक जुनीट सुविधा की तलाश में हैं, या आप पूछ रहे हैं कि बाहरी शुरू होने के बाद बाहरी 'फू' कक्षा को संशोधित करना संभव है या नहीं? – chrylis
आप निश्चित रूप से फू को संशोधित कर सकते हैं ताकि यह उत्परिवर्तनीय हो, लेकिन आप स्पष्ट रूप से उस से निषिद्ध हैं। क्लास को फिर से लोड करने की अनुमति देने के लिए निजी वर्ग लोडर और प्रतिबिंबों का उपयोग करने का एकमात्र अन्य विकल्प है। लेकिन 'Foo.getBar()' कॉल को फिर से काम करना होगा। –
[जावा: कैसे एक स्थैतिक वर्ग को "पुनरारंभ करें" के संभावित डुप्लिकेट?] (Http://stackoverflow.com/questions/4631565/java-how-to-restart-a-static-class) –