ইউনিট পরীক্ষার উদ্দেশ্য-সি কোড দেওয়ার সর্বোত্তম উপায় কী?


330

ইউনিট পরীক্ষার উদ্দেশ্য-সি কোডটিতে কোন ফ্রেমওয়ার্ক রয়েছে? আমি একটি ফ্রেমওয়ার্ক চাই যা অ্যাপল এক্সকোডের সাথে সুন্দরভাবে সংহত করে।


আমার জ্ঞানের সর্বোপরি কিছু উত্তর এখানে পুরানো। অ্যাপলের এখন এক্সসিস্টেস্ট রয়েছে, যা আপনাকে এই সমস্যাটি সমাধান করতে সহায়তা করে। আমি মনে করি বেশিরভাগ উত্তর আপডেট করা দরকার।
মধু

উত্তর:


317

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

এক্সকোড ২ দিন ফিরে, আমি এক্সকোড ইউনিট পরীক্ষার মাধ্যমে কীভাবে কিছু সাধারণ কাজ সম্পাদন করতে পারি সে সম্পর্কে একাধিক ওয়েবলগ পোস্ট লিখেছিলাম:

এক্সসিটিস্টের চেয়ে ওসিউনিট ব্যবহার করা সত্ত্বেও, ধারণাগুলি মূলত একই রকম।

পরিশেষে, আমি কীভাবে কোকো ব্যবহারকারীর ইন্টারফেসের জন্য পরীক্ষা লিখতে পারি সে সম্পর্কে কয়েকটি পোস্ট লিখেছি; কোকোয়া যেভাবে কাঠামোযুক্ত তা এটিকে তুলনামূলকভাবে সোজা করে তোলে, কারণ বেশিরভাগ ক্ষেত্রে আপনাকে কোনও ইভেন্ট লুপ বা এর মতো কিছু স্পিন করতে হবে না।

এটি কেবলমাত্র আপনার মডেল-স্তরের কোডের জন্য নয় বরং আপনার নিয়ামক-স্তর এবং এমনকি দেখার-স্তরের কোডের জন্যও পরীক্ষিত চালিত বিকাশ সম্ভব করে তোলে।


5
পিটার হোসি ডিসেম্বরে লেক ফরেস্টে সিএ কোকোহেডস সভায় কোকো ইউনিট টেস্টিংয়েও একটি ভাল উপস্থাপনা করেছিলেন। এখানে এর একটি ভিডিও এখানে দেওয়া হয়েছে: vimeo.com/2725498
গ্রান্ট লিমবার্গ

1
আমি যখন এক বছর আগে আইওএস স্টাফ শুরু করেছি তখন আমি দেখতে পেলাম যে ওসি ইউনিতের (আমার জন্য) একটি গুরুতর অসুবিধা হয়েছিল - আমি এটি সিমুলেটর বা ডিভাইসে চালাতে পারিনি। এর পর থেকে এটি পরিবর্তিত হতে পারে - আমি চেক করিনি, তবে আমি কেবল এই কারণে GHUnit ব্যবহার করছি।
drekka

1
এই বিষয়ে কোনও অফিসিয়াল অ্যাপল বিকাশকারী ভিডিও রয়েছে? আমি ডাব্লুডাব্লুডিসি ২০১১ এবং ২০১০-এর মধ্য দিয়ে গিয়েছিলাম তবে পরীক্ষার পক্ষে গুরুত্বপূর্ণ হ্যাঁ, তাই কোনও অদ্ভুততা পেলাম না?
রবার্ট

4
Xcode ইউনিট টেস্টিং গাইড লিংক থেকে সরানো হয়েছে xcode ইউনিট টেস্টিং গাইড
স্টিভেন গ্রিন

5
এক্সকোড 5-এ এখন এক্সসিস্টেস্ট রয়েছে কী এটি এখনও ওসিইউনিত অন্তর্ভুক্ত করে? আপনি কি
এক্সকোড

50

গ্যাব্রিয়েল হ্যান্ডফোর্ড দ্বারা GHUnit দেখুন :

"জিএইচউনিতের লক্ষ্যগুলি হ'ল:

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


5
GHUnit এর জন্য +1! আমি আইফোনের বিকাশে নতুন এবং আমি সত্যই বলতে পারি যে ওসিউনিটের পরম দুঃস্বপ্ন এবং জিটিএমের হালকা মাইগ্রেনের তুলনায় আমার GHUnit আপ ছিল এবং কোনও হট্টগোল না দিয়ে চলছিল (নির্দেশাবলী নিখুঁত)। GHUnit ব্যবহারযোগ্যতা এবং স্বাচ্ছন্দ্যের জন্য জয়!
টিম রেড্ডি

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

1
এই প্রকল্পটি তখন থেকে অবচয় করা হয়েছে।
BigHeadCreations



12

নোট করুন যে ম্যাক (জিটিএম) জন্য গুগল টুলবক্স প্রকল্পটি কেবল অ্যাপল এর সেনস্টেস্টিংকিট কাঠামো (যা নিজেই ওসিউনিটের উপর ভিত্তি করে) প্রসারিত / বৃদ্ধি করে। যেমন তারা প্রকল্প সাইটে বলে:

জিটিএম-র স্ট্যান্ডার্ড সেনটেষ্টিংকিটটিতে আপনাকে ইউআই ইউনিট টেস্টিং, অটোমেটেড বাইন্ডিং ইউনিট টেস্টিং, লগ ট্র্যাকিং এবং আইফোনে ইউনিট টেস্টিং করার পাশাপাশি আপনার কোডটির স্ট্যাটিক এবং গতিশীল পরীক্ষা করার জন্য সরঞ্জামগুলির একাধিক বর্ধন রয়েছে।

ব্যবহারকারী-ইন্টারফেস টেস্টিং সম্পর্কে নিম্নলিখিত মন্তব্য নোট করুন:

জিটিএম-এর ইউজার ইন্টারফেস ইউনিট পরীক্ষার জন্য ব্যাপক সমর্থন রয়েছে has এটি প্রায় সমস্ত স্ট্যান্ডার্ড কোকো / ইউআইকিট ইউআই অবজেক্টের ইমেজিং এবং / অথবা অভ্যন্তরীণ উভয় অবস্থার পরীক্ষার জন্য সমর্থন করে এবং আপনার নিজের ইউআই অবজেক্টগুলিতে এই সমর্থনটি বাড়ানো সহজ করে তোলে।

কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে নির্দেশাবলীর জন্য তাদের " কোড যাচাইকরণ এবং ইউনিট পরীক্ষা " পৃষ্ঠাটি দেখুন।


12

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

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


12

আমি বুঝতে পারছি এটি একটি পুরানো প্রশ্ন, তবে আপনি যদি এক্স ইউনাইট-স্টাইল পরীক্ষার (টেস্ট :: ইউনিট, জেএসউনিট, জুনিত, ইত্যাদি) চেয়ে বিডিডি-স্টাইল পরীক্ষা (আরএসপেক, জেসমিন ইত্যাদি) পছন্দ করেন তবে আপনি সিডার পরীক্ষা করে দেখার বিষয়টি বিবেচনা করতে পারেন । সিডার এখন বিডিডি-শৈলীর পরীক্ষাটি অবজেক্টিভ সি-তে নিয়ে আসে, এখন ভাষাটি ক্লোজার সমর্থন করে।

পাইভোটাল ল্যাবগুলিতে আমরা আনন্দের সাথে সিওডারটি আমাদের আইওএস প্রকল্পগুলির জন্য ব্যবহার করছি এবং আমরা সক্রিয়ভাবে এটির উন্নতিতে কাজ করছি। সিডার- discuss@googlegroups.com এ কোনও প্রতিক্রিয়া বা পরামর্শ স্বাগত


10

কোডের কোন অংশটি ইউনিট পরীক্ষাগুলিতে আচ্ছাদিত এবং কোনটি নয় তা দেখার জন্য আমি কভারেজ সরঞ্জামগুলি ব্যবহার করার পরামর্শও দেব। বেসিক লাইন এবং শাখা কোড কভারেজ GCOV সরঞ্জাম দিয়ে তৈরি করা যেতে পারে । আপনি যদি দুর্দান্ত এইচটিএমএল কভারেজের প্রতিবেদন উত্পন্ন করতে চান তবে সেখানে LCOV এবং ZCOV রয়েছে যা কেবল এটি করে।



7

ইউনিট টেস্টিং সমর্থন xcode মধ্যে একত্রিত (তার সহজ সেটআপ জন্য) সঙ্গে মিলিত ocrunner (কিছু autotest জন্য / গোঁ গোঁ শব্দ করা ধার্মিকতা) বর্তমানে আমার প্রিয় OBJ-সি ইউনিট টেস্টিং সেটআপ করা আছে।





5

আমি কিউই, আইওএসের জন্য একটি ওপেন সোর্স বিডিডি পরীক্ষার কাঠামোটি অনুসন্ধান করার পরামর্শ দেব: কিউই

ড্যানিয়েল স্টেইনবার্গের বই "কিউই সহ টেস্ট ড্রাইভিং আইওএস ডেভলপমেন্ট" টেস্ট-ড্রাইভিং- আইওএস-ডেভলপমেন্ট শুরু করতে বা পেতে প্রকল্পটির উইকআই দেখুন


কিউই ওএস এক্সকেও
Kiwi-

4

আমি আইফোন এবং আইপ্যাড লিবের সাথে সিম্পলনিটস্টেস্ট কাজগুলি ব্যবহার করি।

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

এটি সহজেই ইউনিট পরীক্ষার ক্লাস যুক্ত করতে ইউনিট পরীক্ষা এক্সকোড টেম্পলেট নিয়ে আসে। জড়িয়ে দেয় জিটিএম।

আপনি আক্ষরিকভাবে এটি একটি সক্রিয় প্রকল্পে ফেলে দিতে পারেন এবং 3 মিনিটের (বা তারও কম) মধ্যে ইউনিট পরীক্ষা যুক্ত করা শুরু করতে পারেন।


এর .. এটি চালানোর সাথে সাথেই কি এটি ব্যর্থ হওয়ার কথা?
কোয়ান্টাম্পোটাটো

3

স্পেক্টা একটি আধুনিক টিডিডি (টেস্ট চালিত বিকাশ) / বিডিডি (আচরণের চালিত বিকাশ) কাঠামো যা এক্সসিটিস্টের শীর্ষে চলে। এটি আইওএস এবং ম্যাক ওএস এক্স প্রকল্পের ইউনিট পরীক্ষার পক্ষে সহায়তা করে।


0

আমি আশা করি আপনি 'সেনটেষ্টকিট' ব্যবহার করতে পারবেন, সেখান থেকে আপনি প্রতিটি পদ্ধতি পরীক্ষা করতে পারবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.