একটি উপহাসের ফ্রেমওয়ার্ক বেছে নেওয়ার মূল কারণগুলি কী কী?


15

আমি আমার ইউনিট পরীক্ষায় অবজেক্টগুলির সাথে শুরু করার সন্ধান করছি। দেখে মনে হচ্ছে সেখানে প্রচুর পরিশ্রমী ফ্রেমওয়ার্ক রয়েছে।

  1. বিভিন্ন ফ্রেমওয়ার্কের কি আলাদা লক্ষ্যবস্তু শ্রোতা রয়েছে?
  2. আমার পরিস্থিতির জন্য কোন কাঠামোটি সঠিক তা বেছে নেওয়ার সময় আমার কোন বিষয়গুলি বিবেচনা করা উচিত?

আমি একটি নেট পরিবেশে কাজ করছি, তবে আমি প্রশ্নটি সাধারণভাবে ঠাট্টার কাঠামোর ক্ষেত্রে প্রযোজ্য বলে অভিহিত করেছি।
Epotter

উত্তর:


14

বিভিন্ন ফ্রেমওয়ার্কের কি আলাদা লক্ষ্যবস্তু শ্রোতা রয়েছে?

হ্যাঁ. মাইক্রোসফট মত কিছু অবকাঠামো Moles , TypeMock Isolator এবং JustMock , আপনি ঠিক সম্পর্কে কিছু উপহাস পাবে অনুমতি দেয়। এই বিদ্রূপাত্মক সরঞ্জামগুলি বিকাশকারীদের বিদ্যমান লিগ্যাসি কোডগুলিতে তাদের ব্যবহার করতে ইচ্ছুকদের পক্ষে সাধারণত আরও ভাল কারণ যেহেতু আরও পরীক্ষামূলক design এমন একটি নকশায় যেমন রিফ্যাক্টর করা সম্ভব নাও হতে পারে *

প্রথাগতভাবে, testable ডিজাইন মানে কোডবেস ইন্টারফেস, বিমূর্ত ক্লাস, ভার্চুয়াল পদ্ধতি, unsealed ক্লাস, ইত্যাদি উদার ব্যবহার করতে প্রয়োজন অতএব, মত ঐতিহ্যগত বিদ্রূপকারী অবকাঠামো MOQ এবং RhinoMocks ভাল কোডের মাধ্যমে কাজ টেস্ট চালিত উন্নয়ন, নির্ভরতা ইনজেকশন ব্যবহার করে বিকশিত, এবং যেমন অন্যান্য ধারণা। যাইহোক, আমি অত্যন্ত নির্ভরশীল ইনজেকশন ব্যবহার করার পরামর্শ দিচ্ছি কারণ আপনি কেবল টেস্টেবল কোডের চেয়ে অনেক বেশি অর্জন করতে পারেন তবে পাশাপাশি আরও রক্ষণাবেক্ষণযোগ্য কোডও।

আমার পরিস্থিতির জন্য কোন কাঠামোটি সঠিক তা বেছে নেওয়ার সময় আমার কোন বিষয়গুলি বিবেচনা করা উচিত?

  • উন্নয়ন ক্রিয়াকলাপ। মাক, এবং রাইনোমকস এর মতো সরঞ্জামগুলি খুব সক্রিয় এবং জনপ্রিয় এবং এইভাবে তা আপ টু ডেট।
  • ওপেন সোর্স বনাম বাণিজ্যিক । এই তুলনা করার জন্য আদর্শ বিভিন্ন ধরণের বিবেচনা করুন। খরচ, সহায়তা ইত্যাদি ...
  • পুরোপুরি প্রাপ্তবয়স্কদের জন্য। হাতিয়ারটি কত নতুন। এটি কি বিটাতে রয়েছে (মাইক্রোসফ্ট মোলসের মতো) বা এর বেশ কয়েকটি স্থিতিশীল প্রকাশ হয়েছে? উদাহরণস্বরূপ, আমি লিগ্যাসি কোডের জন্য মোলসকে পছন্দ করি, তবে এতে কয়েকটি বাগ রয়েছে যার মধ্যে এটি সম্বোধন করা দরকার এবং তারা সম্বোধনের আগে অপেক্ষা করতে হবে (পরবর্তী প্রকাশ নভেম্বর, ২০১১)।
  • নথিপত্র। বেশ কয়েকটি বই এবং ব্লগ রয়েছে যা ইউনিট টেস্টিং, বিদ্রূপ করা, অটো-মকিং ইত্যাদি কাভার করে Additionally অতিরিক্তভাবে সরঞ্জামটির নিজস্ব ডকুমেন্টেশন কতটা ভাল?
  • সিনট্যাক্স । প্রতিটি সরঞ্জামের একই জিনিস বলার নিজস্ব পদ্ধতি রয়েছে। আপনার জন্য কোনটি আরও ভাল ফিট See
  • গতি । যে সরঞ্জামগুলিতে সিএলআর প্রোফাইলিং (টাইপমক, মোলস, জাস্টমক) ব্যবহার করা হয়, সেগুলি প্রচলিতগুলির (মোক, রাইনোমকস) এর চেয়ে অনেক ধীর হতে পারে। আপনি অনেক ইউনিট পরীক্ষাগুলি সংগ্রহ করার কারণে এই গতির শাস্তি কোনও সমস্যা হতে পারে। থাম্বের নিয়ম হ'ল যদি কোনও পরীক্ষা এক সেকেন্ডে 1/10 এর বেশি সময় নেয় তবে এটি খুব ধীর।
  • কমিউনিটি সাপোর্ট । অন্যান্য বিকাশকারীরা কি এমন অন্যান্য সরঞ্জাম লিখছেন যা উপহাসের সরঞ্জামটিতে প্রসারিত (বা প্রশংসায় কাজ করে)? একটি মো.কন্ট্রিবিব প্রকল্প রয়েছে যা মোককে একটি স্ব-বিদ্রূপ করার ক্ষমতা যুক্ত করে (যা পরীক্ষার লেখার সময় গতিতে সহায়তা করে)। এখনো ভালো, আছে AutoFixture AutoFixture.AutoRhinoMocks, যা স্বয়ং-বিদ্রূপকারী, প্লাস বেনামী পরিবর্তনশীল সৃষ্টির জন্য অনুমতি দেয়, AutoFixture.AutoMoq।

* Traditionalতিহ্যবাহী পরীক্ষার (এবং উপহাস) সরঞ্জামগুলির সাথে ব্যবহার করা যেতে পারে এমন কোডগুলিতে টেস্ট ছাড়াই ধীরে ধীরে রিফ্যাক্টর কোড কীভাবে করা যায় তার উপায়গুলির জন্য, * লেগ্যাসি কোডের সাথে কার্যকরভাবে কাজ করা দেখুন ।


2

MOQ টিউটোরিয়াল TypeMock Isolator, RhinoMocks এবং MOQ: শুরুতে যা কয়েক নির্দিষ্ট সরঞ্জামসমূহ সম্পর্কিত এই আলোচনা এ পটভূমি, দর্শন, এবং বিতর্ক ডান দিকে একটি অধ্যায় আছে। এটি মোখকে ব্যাখ্যা করার জন্য লেখা হয়েছে, তাই স্বাভাবিকভাবেই কিছুটা স্কিউযুক্ত, তবে উপহাসের ফ্রেমওয়ার্কগুলিতে কিছু পার্থক্য বোঝার চেষ্টা করার সময় আমার পক্ষে এটি বেশ সহায়ক বলে মনে হয়েছিল।

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

আমি অনলাইনে একটি তুলনা চার্টও খুঁজে পেতে সক্ষম হয়েছি। মনে রাখবেন এটি ২০০৯ সালের, সুতরাং আমি নিশ্চিত যে এটি আপ-টু-ডেট; কমপক্ষে একটি মন্তব্য উল্লেখ করে বলা হয়েছে যে টাইপমক এবং কলব্যাকের তথ্য পুরানো, তবে বর্তমান পরিস্থিতিটি কী তা দেখার জন্য আপনাকে লেগওয়ার্ক করতে হবে তা বিবেচনার জন্যও চার্ট বিষয়গুলি উত্থাপনের জন্য ভাল হতে পারে: রাইনোমকস, মক, এনমক, এবং টাইপমক তুলনা চার্ট

গুগল কোডে একাধিক উপহাস ফ্রেমওয়ার্কে পরীক্ষার ক্ষেত্রে সহজ কোড তুলনা করার জন্য একটি প্রকল্প রয়েছে: উপহাস-ফ্রেমওয়ার্ক-তুলনা


2
  1. ব্যবহারে সহজ. কিছু ফ্রেমওয়ার্কের ব্যবহারের আরও উন্নত প্রজ্ঞা রয়েছে। উদাহরণস্বরূপ, MOQ: সঙ্কেতাক্ষরে লিখা প্রত্যাশা lambdas ব্যবহার করতে পারবে। কিছু পুরানো গ্রন্থাগার এটি সমর্থন করে না।
  2. গতি. প্রতিটি ইউনিট পরীক্ষা দ্রুত হওয়া উচিত যাতে আপনার পুরো লাইব্রেরিটি চলতে কয়েক ঘন্টা সময় নেয় না। কিছু মশকরা ফ্রেমওয়ার্ক স্থিরভাবে মক তৈরি করেছে, যা দ্রুত। অন্যান্য ফ্রেমওয়ার্কগুলি গতিশীলভাবে রানটাইমে কোড উত্পন্ন করে যা ধীর।
  3. সমর্থন। আপনি এমন একটি ফ্রেমওয়ার্ক চান যা কার্যকরভাবে সংশোধন করে সমর্থিত এবং .NET- র নতুন সংস্করণগুলি প্রকাশের জন্য সমর্থন করার জন্য আপডেট করা হয়েছে।
  4. পাওয়ার। আমি গবেষণা করেছিলাম বেশিরভাগ মশকরা ফ্রেমওয়ার্কগুলি পাওয়ারের দিক থেকে প্রায় একই same একটি উল্লেখযোগ্য ব্যতিক্রম আছে। মাইক্রোসফ্ট মোলস "সিলড ধরণের অ-ভার্চুয়াল / স্ট্যাটিক পদ্ধতিগুলি" উপহাসের জন্য অনুমতি দেয়। এটি এমন কোনও বিষয় যা আমার জ্ঞানের জন্য কোনও মশকরা ফ্রেমওয়ার্ক সমর্থন করে না।

আমার দলে, আমরা মাইক্রোসফ্ট মোলসকে বেছে নিয়েছি । এটি # 2, # 3, এবং # 4 তে উল্লেখযোগ্যভাবে জিতেছে, যদিও এটি বেশিরভাগ বিকল্পের চেয়ে কম মূর্তিমান এবং # 1 এর নিম্ন প্রান্তে রয়েছে।


এখন TypeMock মত অনেক পরিকাঠামোর দ্বারা JustMock স্ট্যাটিক পদ্ধতি উপহাস মঞ্জুরি দেয় যা সিল শ্রেণীর ইত্যাদি
muruge
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.