2 JUnit Assert ক্লাসের মধ্যে পার্থক্য


257

JUnit ফ্রেমওয়ার্কে 2 টি Assertক্লাস রয়েছে (স্পষ্টতই বিভিন্ন প্যাকেজগুলিতে) এবং প্রতিটি পদ্ধতির পদ্ধতিগুলি একই রকমের বলে মনে হয়। কেউ কেন এটি ব্যাখ্যা করতে পারেন?

আমি যে ক্লাসগুলির উল্লেখ করছি সেগুলি হ'ল: junit.framework.Assertএবং org.junit.Assert


8
ইন্টেলিজ আইডিইএতে আপনি junit.framework.*স্থিতিশীল আমদানি ড্রপডাউন থেকে বাদ দিতে পারেন Editor->General->Auto Import->Exclude from Import and Completion
jordanpg

উত্তর:


239

পুরানো পদ্ধতি (জুনিয়ট 3-এর) ছিল বর্ধিত করে পরীক্ষা-ক্লাসগুলি চিহ্নিত করা junit.framework.TestCase। এটি junit.framework.Assertনিজেই উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছে এবং আপনার পরীক্ষার শ্রেণি এইভাবে আসক্তি পদ্ধতিগুলিকে কল করার ক্ষমতা অর্জন করেছিল।

JUnit এর 4 সংস্করণ থেকে, ফ্রেমওয়ার্কটি Annotationsচিহ্নিতকরণ পরীক্ষার জন্য ব্যবহার করে। সুতরাং আপনার আর প্রসারিত করার দরকার নেই TestCase। তবে এর অর্থ, দাবী করার পদ্ধতিগুলি পাওয়া যায় না। তবে আপনি নতুন Assertশ্রেণীর স্থিতিশীল আমদানি করতে পারেন । এই কারণেই নতুন শ্রেণীর সমস্ত দাবী পদ্ধতি হ'ল স্থির পদ্ধতি। সুতরাং আপনি এটি এইভাবে আমদানি করতে পারেন:

import static org.junit.Assert.*;

এই স্থিতিশীল আমদানির পরে, আপনি উপসর্গ ছাড়াই এই পদ্ধতিগুলি ব্যবহার করতে পারেন।

নতুন ডিজাইনে তারা নতুন প্যাকেজেও চলে গিয়েছিল যা org.junitপ্যাকেজ নামকরণের জন্য সাধারণ কনভেনশনগুলি আরও ভাল করে অনুসরণ করে।


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

75

জুনিত 3. এক্স: junit.framework.Assert

জুনিট 4. এক্স: org.junit.Assert

সর্বাধিক নতুনটিকে পছন্দ করুন, বিশেষত যখন জেডি কে 5 চালাবেন এবং এ্যানোটেশন সমর্থন সহ উচ্চতর।


19

সেখানে আসলে একটি কার্মিক পরিবর্তন হল: org.junit.Assertআপনি দুই যুক্তি ব্যবহার নালিশ করবে assertEquals()সঙ্গে floatবা double, যখন junit.framework.Assertনিঃশব্দে এটি autobox হবে।


5

আমি বিশ্বাস করি তারা পিছন থেকে সামঞ্জস্যতা থেকে প্রতিস্থাপন করা junit.frameworkহয় org.junitএবং junit.framework.Assertবজায় রাখা হয়।


3

আমি মোটামুটি উত্স কোডটি তুলনা করেছি এবং গুরুতর কোনও পরিবর্তন নেই। প্রচুর মন্তব্য যুক্ত করা হয়েছিল org.junit.Assertএবং কিছু রিফ্যাক্টরিং করা হয়েছে। একমাত্র পরিবর্তনটির সাথে তুলনা করা Arrays। কিছু কোড ক্লিনআপ রয়েছে তবে কার্যকরভাবে কোনও পরিবর্তন নেই (imho) ।


1
আমি বিশ্বাস করি @ ডেভিড মোলস সঠিক, এবং এটি কার্যকরী পরিবর্তন হবে।
অরবফিশ

1

অ্যান্ড্রয়েড স্টুডিওতে (এবং এটিও ইন্টেলিজজে), আপনি বিশ্বব্যাপী junit.frameworkঅটো-আমদানির প্রস্তাব থেকে বাদ দিতে পারেন ।

আপনি IDEবা এর মধ্যে সুযোগ নির্ধারণ করতে পারেনProject । আপনার যদি JUnit 3 ব্যবহার করে এমন প্রকল্পগুলি না থাকে আপনি IDE স্কোপ দিয়ে নিরাপদে থাকতে পারবেন।

অবস্থান নির্ধারণ:

পছন্দসমূহ -> সম্পাদক -> সাধারণ -> স্বয়ংক্রিয় আমদানি

এখানে চিত্র বর্ণনা লিখুন

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