আমার একটি পদ্ধতি রয়েছে যার জন্য আমি ইউনিট পরীক্ষা লিখতে চাই। আমি এটিকে মোটামুটি জেনেরিক রাখছি কারণ আমি পদ্ধতির বাস্তবায়ন সম্পর্কে আলোচনা করতে চাই না, কেবল এটির পরীক্ষা করে। পদ্ধতিটি হ'ল:
public void HandleItem(item a)
{
CreateNewItem();
UpdateStatusOnPreviousItem();
SetNextRunDate();
}
সুতরাং এই শ্রেণীর একটি পাবলিক পদ্ধতি রয়েছে যা তারপরে যুক্তি সম্পাদনের জন্য কিছু ব্যক্তিগত পদ্ধতি কল করে।
সুতরাং ইউনিট পরীক্ষা লেখার সময় আমি তিনটি জিনিস পরীক্ষা করে দেখতে চাই। যেহেতু তাদের সবাইকে একই রান হিসাবে ডাকা হয়েছিল আমি ভেবেছিলাম যে আমি এটি একটি পরীক্ষা হিসাবে করতে পারি:
public void GivenItem_WhenRun_Thenxxxxx
{
HandleItem(item);
// Assert item has been created
// Assert status has been set on the previous item
// Assert run date has been set
}
তবে আমি ভেবেছিলাম আমি এটি তিনটি পৃথক পরীক্ষা হিসাবে লিখতে পারি:
public void GivenItem_WhenRun_ThenItemIsCreated()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenStatusIsUpdatedOnPreviousItem()
{
HandleItem(item);
}
public void GivenItem_WhenRun_ThenRunDateIsSet()
{
HandleItem(item);
}
সুতরাং এটি আমার কাছে এটি প্রয়োজনীয় বলে মনে হচ্ছে এটি প্রয়োজনীয়ভাবে তালিকাবদ্ধ করে, তবে তিনটিই সম্পর্কিত হয় এবং পরীক্ষিত পদ্ধতিতে ঠিক একই কাজ সম্পাদনের প্রয়োজন হয়, তাই একই কোডটি 3 বার চালাচ্ছি।
এটি গ্রহণ করার জন্য কি কোনও প্রস্তাবিত পদ্ধতির রয়েছে?
ধন্যবাদ