আমার বেশিরভাগ অ্যাপ্লিকেশনগুলিতে আমার কাছে ডিস্ক থেকে বিভিন্ন সেটিংস পড়ার দায়িত্বে সিঙ্গলটন বা স্ট্যাটিক "কনফিগার" অবজেক্ট রয়েছে। প্রায় সমস্ত শ্রেণি বিভিন্ন উদ্দেশ্যে এটি ব্যবহার করে। মূলত এটি নাম / মান জোড়ার একটি হ্যাশ টেবিল। এটি কেবল পঠনযোগ্য, তাই আমার এতটা বিশ্বব্যাপী অবস্থা রয়েছে বলে আমি খুব বেশি উদ্বিগ্ন হইনি। তবে এখন যেহেতু আমি ইউনিট পরীক্ষা দিয়ে শুরু করছি, এটি একটি ইস্যুতে পরিণত হতে শুরু করে।
একটি সমস্যা হ'ল আপনি সাধারণত যে কনফিগারেশনটি চালান তার সাথে পরীক্ষা করতে চান না। এর বেশ কয়েকটি সমাধান রয়েছে:
- কনফিগার অবজেক্টটিকে এমন একটি সেটার দিন যা কেবলমাত্র পরীক্ষার জন্য ব্যবহৃত হয়, যাতে আপনি বিভিন্ন সেটিংসে পাস করতে পারেন।
- একটি একক কনফিগার অবজেক্ট ব্যবহার করা চালিয়ে যান, তবে এটি একটি সিঙ্গলটন থেকে এমন এক পরিস্থিতিতে পরিবর্তন করুন যা আপনি যেদিকেই প্রয়োজন সেখানে ঘুরে যান। তারপরে আপনি এটিকে একবার আপনার অ্যাপ্লিকেশনটিতে এবং একবার একবার পরীক্ষা করে বিভিন্ন সেটিংসের সাহায্যে তৈরি করতে পারেন।
তবে যে কোনও উপায়ে, আপনি এখনও দ্বিতীয় সমস্যাটি রেখে গেছেন: প্রায় কোনও শ্রেণি কনফিগার অবজেক্টটি ব্যবহার করতে পারে। সুতরাং একটি পরীক্ষায়, আপনাকে পরীক্ষা করা শ্রেণীর জন্য কনফিগারেশন স্থাপন করতে হবে, তবে এর সমস্ত নির্ভরতাও রয়েছে। এটি আপনার পরীক্ষার কোডটিকে কুৎসিত করতে পারে।
আমি এই সিদ্ধান্তে পৌঁছতে শুরু করি যে এই ধরণের কনফিগার বস্তুটি একটি খারাপ ধারণা। আপনি কি মনে করেন? কিছু বিকল্প কি কি? এবং আপনি যে কোনও অ্যাপ্লিকেশনটিকে কনফিগারেশন ব্যবহার করে সেখানে যে কোনও জায়গায় রিফ্যাকচারিং শুরু করবেন?