আমি জানি যে এটি আর একটি দেরী উত্তর, তবে আমার দলে এমএস টেস্ট ফ্রেমওয়ার্কটি ব্যবহার করে লক করা আছে, আমরা এমন একটি প্রযুক্তি তৈরি করেছি যা পরীক্ষার উপাত্তের অ্যারে ধরে রাখার জন্য কেবল অজ্ঞাতনামা টাইপগুলির উপর নির্ভর করে, এবং প্রতিটি সারি লুপ করে পরীক্ষা করতে লিনকিউ। এটির জন্য কোনও অতিরিক্ত ক্লাস বা ফ্রেমওয়ার্ক প্রয়োজন হয় না, এবং পড়া এবং বুঝতে মোটামুটি সহজ হতে থাকে। বাহ্যিক ফাইল বা সংযুক্ত ডাটাবেস ব্যবহার করে ডেটা চালিত পরীক্ষাগুলির চেয়ে এটি প্রয়োগ করাও অনেক সহজ।
উদাহরণস্বরূপ, বলুন আপনার কাছে এর মতো একটি এক্সটেনশন পদ্ধতি রয়েছে:
public static class Extensions
{
/// <summary>
/// Get the Qtr with optional offset to add or subtract quarters
/// </summary>
public static int GetQuarterNumber(this DateTime parmDate, int offset = 0)
{
return (int)Math.Ceiling(parmDate.AddMonths(offset * 3).Month / 3m);
}
}
আপনি এই জাতীয় একটি পরীক্ষার জন্য লিনকিউতে একত্র হয়ে বেনামে প্রকারের অ্যারে ব্যবহার করতে পারেন:
[TestMethod]
public void MonthReturnsProperQuarterWithOffset()
{
// Arrange
var values = new[] {
new { inputDate = new DateTime(2013, 1, 1), offset = 1, expectedQuarter = 2},
new { inputDate = new DateTime(2013, 1, 1), offset = -1, expectedQuarter = 4},
new { inputDate = new DateTime(2013, 4, 1), offset = 1, expectedQuarter = 3},
new { inputDate = new DateTime(2013, 4, 1), offset = -1, expectedQuarter = 1},
new { inputDate = new DateTime(2013, 7, 1), offset = 1, expectedQuarter = 4},
new { inputDate = new DateTime(2013, 7, 1), offset = -1, expectedQuarter = 2},
new { inputDate = new DateTime(2013, 10, 1), offset = 1, expectedQuarter = 1},
new { inputDate = new DateTime(2013, 10, 1), offset = -1, expectedQuarter = 3}
// Could add as many rows as you want, or extract to a private method that
// builds the array of data
};
values.ToList().ForEach(val =>
{
// Act
int actualQuarter = val.inputDate.GetQuarterNumber(val.offset);
// Assert
Assert.AreEqual(val.expectedQuarter, actualQuarter,
"Failed for inputDate={0}, offset={1} and expectedQuarter={2}.", val.inputDate, val.offset, val.expectedQuarter);
});
}
}
এই কৌশলটি ব্যবহার করার সময় এটি কোনও ফর্ম্যাট বার্তা ব্যবহার করা সহায়ক যা এতে সারিটিতে ইনপুট ডেটা অন্তর্ভুক্ত করে তা সনাক্ত করতে আপনাকে সহায়তা করে যাতে কোন সারিতে পরীক্ষায় ব্যর্থ হওয়ার কারণ ঘটেছে।
আমি AgileCoder.net এ আরও পটভূমি এবং বিশদ সহ এই সমাধানটি সম্পর্কে ব্লগ করেছি ।