মকিংয়ের সাথে আরকঅবজেক্টগুলি কীভাবে পরীক্ষা করবেন?


10

আমি ইউনিট পরীক্ষার একটি বিশাল ফ্যান, তবে এখনও আর্কওবজেক্টস কাঠামো ব্যবহার করার সময় ইউনিট পরীক্ষা চালানোর জন্য বৈশিষ্ট্যগুলি দখল করতে একটি এফজিডিবি ব্যবহার করি।

আইফিচার, আইজিমেট্রি, আই ওয়ার্কস্পেস ইত্যাদির মতো চিন্তার বিরুদ্ধে কেউ সফলভাবে উপহাসের ব্যবহার করছে যদি তা হয় তবে আপনি কীভাবে এটি করছেন তার কয়েকটি উদাহরণ দেখতে আমি পছন্দ করব। আপনি কী উপহাসের কাঠামো ব্যবহার করেন সে সম্পর্কে আমি সত্যিই মাথা ঘামাই না , আপনি কীভাবে এটি করছেন তা দেখে প্রশংসা হবে।

আমি যে সমস্যাটি দেখছি তা হ'ল আপনাকে একই বস্তুতে এতগুলি ইন্টারফেসের মধ্যে টুকরো টুকরো করে ডাইস করতে হবে, যে প্রতিনিধি মক অবজেক্ট তৈরির ওভারহেড বিশাল be


অন্য কারও জন্য যারা উপহাস সম্পর্কে জানেন না (আমার মতো), দয়া করে এই লিঙ্কটি দেখুন। আকর্ষণীয় জিনিস। stackoverflow.com/questions/300177/…
সাইমন

উত্তর:


14

আমরা একটি বড় প্রকল্পে আমাদের ব্যবসার যুক্তি থেকে আরকোবজেক্টস কোডকে আলাদা করতে বেশ ভালভাবে পরিচালনা করেছি। এই উপায়টিই সাধারণত হয়, আমি বলব, এটির সাথে ব্যঙ্গ করার চেষ্টা না করে, কিছু উপায় পাওয়ার জন্য মশকরা ফ্রেমওয়ার্ক ব্যবহার করা সম্ভব হলেও।

নিজেকে জিজ্ঞাসা করুন, এটি কেন আপনার উপহাস করার প্রয়োজন বোধ করে? সাধারণত এটি নিখোঁজ বিমূর্ততার কারণে। ছোট্ট দায়িত্বগুলি ভাবেন এবং বিশাল, কদর্য আরকবজেক্ট দানবটির পৃষ্ঠকে হ্রাস করুন। আরকোবজেক্টের ধরণগুলির জন্য কেবল এড়াতে এড়াবেন না কারণ সেগুলির কিছু দিক কোথাও প্রয়োজন।

আমি আমাদের প্রকল্পের একটি দৃ concrete় উদাহরণ দিতে পারি। কোডটির একটি অংশ IMXDocament এর উপর নির্ভর করে বলে মনে হচ্ছে। সক্রিয় দৃষ্টিভঙ্গি সতেজ করা দরকার ছিল এর একমাত্র কারণ ছিল। সুতরাং আমরা পরিবর্তে একটি আইভিউউফ্রেশার ইন্টারফেস তৈরি করেছি এবং কেবল এটিতে কাজ করেছি; উপহাস এবং পরীক্ষা করা সহজ। অতিরিক্তভাবে, এটি কোডটির অভিপ্রায়টিকে আরও পরিষ্কার করে তোলে এবং আইএমএক্স ডকুমেন্টের সাথে কারও মজাদার কাজ শুরু করার প্রলোভন সরিয়ে দেয় কারণ আমরা এখানে যা করতে চাইছিলাম তা রিফ্রেশ ছিল। একই ব্যায়ামটি প্রচুর আরকোবজেক্টস কোড দিয়ে করা যেতে পারে।

এছাড়াও, আমরা টাইপ নিরাপদ মোড়কে ফিচার ক্লাসে সমস্ত অ্যাক্সেস মুড়ে ফেলেছি, আবার আরকঅবজেক্টস থেকে ব্যবসায়িক কোডটি mালানোর জন্য মকেটেবল কোড সরবরাহ করে।

আমরা আর্কওবজেক্টের জ্যামিতি ধরণের ব্যবহার না করেও আলোচনা করেছি, তবে বর্তমানে আমরা আমাদের কোডগুলিতে সেই ইন্টারফেসগুলি সরাসরি ব্যবহার করার অনুমতি দিই না। (তবে, কেবল ইন্টারফেস জ্ঞান অনুমোদিত এবং জ্যামিতির সমস্ত তাত্ক্ষণিকতা আমাদের নিজস্ব জ্যামিতি কারখানা ব্যবহার করে))

সংক্ষেপে, আমি বিদ্রূপকে দূরে সরিয়ে দিচ্ছি না তবে আমি আরকোবজেক্টসের চেয়ে বিমূর্ততার ভিন্ন স্তরে উপহাসকে উত্সাহিত করব।


দুর্দান্ত উত্তর আমারও এও কোড টেস্টিংয়ের অনেকগুলি আলাদা ইউনিট রয়েছে। আপনি যে উদাহরণটি দিয়েছেন তা দুর্দান্ত (আইভিউউফ্রিফার) ছিল এবং আমি এটি আমার কাজটিতে এটি প্রয়োগ করতে পারি। আপনি আরও উদাহরণ দিতে পারেন?
জর্জ সিলভা

ধন্যবাদ কুম্বায়াহ। আমি বর্তমানে মাঝারি থেকে বড় প্রকল্পগুলিতে যা করি তা সমস্ত এও বাস্তবায়নের বিমূর্তকরণের জন্য একটি পৃথক সমাবেশ তৈরি করে। এটি এই বিমূর্ততাটি আমি সঞ্চিত ডেটা অবলম্বন না করেই পরীক্ষা করতে চাই, এটি এক্সএমএল ওয়ার্কস্পেস বা একরকম বা অন্য কোনও জিওডাটাবেস হতে পারে। আমি দেখতে পেয়েছি যে সময়ে সময়ে বিভিন্ন ডেটা, নতুন সমস্যাগুলি ক্রপ হয়, যার জন্য পরে পরীক্ষাগুলি তৈরি করা দরকার যা অতিরিক্ত পরীক্ষার ডেটা প্রয়োজন। সময়ের সাথে সাথে সমস্ত পরীক্ষার ক্ষেত্রে আমার কাছে এত পরীক্ষার ডেটা থাকে যে প্রকল্পগুলি পরিচালনা এবং চারদিকে ঘুরতে বিশাল আকার ধারণ করে, আমার স্বয়ংক্রিয় বিল্ড সার্ভারের মাধ্যমে ডাউনলোড করে দেওয়া হোক।
ব্লিঙ্কিবিলে

কুম্বায়াহ, এটি অবিশ্বাস্য মনে হচ্ছে sounds আমি কিছু উদাহরণ পছন্দ করব। আপনি কি কখনও ইএসআরআই সম্মেলনে এই বিষয়ে কিছু উপস্থাপনের কথা ভেবে দেখেছেন? আমি মনে করি ইএসআরআই / জিআইএস সম্প্রদায় এই ধরণের স্টাফের জন্য মারা যাচ্ছে। আরকোবজেক্টগুলি পরীক্ষা / উপহাস করার জন্য কিছু ওপেন সোর্স আন্দোলন শুরু করতে পছন্দ করবে Would
কিথ জি

এটি আমি বুঝতে একটি পুরানো বিষয়, তবে কোনও সুযোগ আমরা কী আপনার "নিজস্ব জ্যামিতি কারখানার" নমুনা পেতে পারি? আমি আমার সংস্থাকে ইউনিট পরীক্ষার দিকে চালিত করার চেষ্টা করছি, তবে আমি আরকোবজেক্টস বানরটির সাথে ঝুলতে চাইছি।
লুক

4

ডেভ বাউম্যান এবং ব্রায়ান নওলির এসরি বিকাশকারীদের জন্য ইউনিট টেস্টিং একটি খুব ভাল শুরু করার জায়গা - বিশেষত যেহেতু তারা কিছু কোড দেখার জন্য ছুঁড়েছে ।


পয়েন্টার ব্রওয়ারিলির জন্য ধন্যবাদ। ডেভ যা করেন তা কেবল বৈশিষ্ট্যগুলির এক্সএমএল উপস্থাপনা ব্যবহার করুন। সুতরাং এটি সহায়তা করার সময়, এটি পরীক্ষার জন্য ডেটা সংরক্ষণ করার উপর নির্ভর করে, যা আমি এড়াতে চাইছি।
ব্লিঙ্কবিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.