मैंने क्लास असाइनमेंट के लिए कुछ सॉर्टिंग एल्गोरिदम लिखे और मैंने एल्गोरिदम को सही तरीके से लागू करने के लिए कुछ परीक्षण भी लिखे। मेरे परीक्षण केवल 10 लाइनों की तरह हैं और उनमें से 3 हैं, लेकिन 3 के बीच केवल 1 पंक्ति में परिवर्तन होता है इसलिए बहुत बार दोहराया गया कोड है। क्या इस कोड को किसी अन्य विधि में फिर से भरना बेहतर है जिसे बाद में प्रत्येक परीक्षण से बुलाया जाता है? क्या मुझे फिर से परीक्षण करने के लिए एक और परीक्षण लिखने की आवश्यकता नहीं होगी? कुछ चरों को कक्षा स्तर तक भी ले जाया जा सकता है। क्या कक्षाओं और विधियों का परीक्षण नियमित कक्षाओं / विधियों के समान नियमों का पालन करना चाहिए?
यहाँ एक उदाहरण है:
[TestMethod]
public void MergeSortAssertArrayIsSorted()
{
int[] a = new int[1000];
Random rand = new Random(DateTime.Now.Millisecond);
for(int i = 0; i < a.Length; i++)
{
a[i] = rand.Next(Int16.MaxValue);
}
int[] b = new int[1000];
a.CopyTo(b, 0);
List<int> temp = b.ToList();
temp.Sort();
b = temp.ToArray();
MergeSort merge = new MergeSort();
merge.mergeSort(a, 0, a.Length - 1);
CollectionAssert.AreEqual(a, b);
}
[TestMethod]
public void InsertionSortAssertArrayIsSorted()
{
int[] a = new int[1000];
Random rand = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < a.Length; i++)
{
a[i] = rand.Next(Int16.MaxValue);
}
int[] b = new int[1000];
a.CopyTo(b, 0);
List<int> temp = b.ToList();
temp.Sort();
b = temp.ToArray();
InsertionSort merge = new InsertionSort();
merge.insertionSort(a);
CollectionAssert.AreEqual(a, b);
}