আমাদের কাছে একটি টেস্ট স্যুট রয়েছে যা প্রাথমিকভাবে হ্যামরেস্ট ম্যাথারদের সাথে ইউএনইট এ্যাসেরেন্স ব্যবহার করে। আমাদের টিমের একজন এসেটজেজে পরীক্ষা করা শুরু করে এবং এর সিনট্যাক্স, নমনীয়তা এবং ঘোষণামূলক- নেসে লোককে মুগ্ধ করে। JUnit সরবরাহ করে যে একটি বৈশিষ্ট্য রয়েছে যে আমি AssertJ- তে কোনও সমতুল্য খুঁজে পাচ্ছি না: একটি কাস্টম প্রতিস্থাপন ব্যর্থতা বার্তা যুক্ত করে।
আমরা প্রায়শই এমন জিনিসগুলির সাথে তুলনা করছি যা মানব পাঠযোগ্যতার জন্য তৈরি করা হয়নি এবং এলোমেলোভাবে দেখতে পাওয়া আইডি বা ইউআইডি রয়েছে এবং তাদের যে ডেটা রয়েছে সেগুলি দ্বারা তাদের কী হবে বলে ধারণা করা অসম্ভব। এটি আমাদের কোডবেসের জন্য একটি অপরিবর্তনীয় পরিস্থিতি, দুঃখের বিষয়, এটি যে উদ্দেশ্যটি পূরণ করে তার অংশ হিসাবে এটি অগত্যা তা কী তা না বুঝে অন্যান্য পরিষেবার মধ্যে ডেটা ম্যাপ করা।
JUnit এ, assertThat
পদ্ধতিটি String reason
প্যারামের আগে একটি প্যারামিটার সহ একটি সংস্করণ সরবরাহ করে Matcher<T>
। এটি তুলনাকে কীভাবে বোঝাতে হবে তার মতো সমস্যার বিষয়ে কিছুটা আলোকপাত করে একটি সংক্ষিপ্ত ডিবাগ স্ট্রিং যুক্ত করা তুচ্ছ করে তোলে।
অন্যদিকে, AssertJ একটি মিলিয়ন বিভিন্ন জেনেরিকাইজডstatic assertThat
পদ্ধতি সরবরাহ করে যা ইন্টারফেসের কিছু রূপের আসর্ট বা তার অনেকগুলি বাস্তবায়নকারী ক্লাসগুলির মধ্যে একটি ফেরত দেয় । এই ইন্টারফেসটি ব্যর্থতার সাথে অন্তর্ভুক্ত করার জন্য কাস্টম বার্তা সেট করার মানক উপায় সরবরাহ করে না।
আমরা যে বার্তাগুলিতে বার্তা যুক্ত করতে চাই তার প্রতিস্থাপন টাইপের জন্য কাস্টম অ্যাসেট ক্লাস তৈরি না করেই এ্যাসেটজে এপিআই বা এর কোনও এক্সটেনশান থেকে এই কার্যকারিতাটি পাওয়ার কোনও উপায় আছে কি ?
withFailMessage
পদার্থ কল করার ক্রম ; আমি AssertJ পছন্দ করি, কিন্তু এই স্তন্যপান।