Bir sınıf ödevi için bazı sıralama algoritmaları yazdım ve algoritmaların doğru bir şekilde uygulandığından emin olmak için birkaç test yazdım. Testlerim sadece 10 satır uzunluğunda ve 3 tanesi var, ancak 3 arasında sadece 1 satır değiştiğinden, tekrarlanan kod çok fazla. Bu kodu daha sonra her testten çağrılan başka bir yönteme yeniden aktive etmek daha mı iyi? Daha sonra yeniden düzenlemeyi test etmek için başka bir test yazmam gerekmez mi? Değişkenlerin bazıları sınıf seviyesine kadar bile taşınabilir. Test sınıfları ve yöntemleri, normal sınıflar / yöntemlerle aynı kuralları izlemeli mi?
İşte bir örnek:
[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);
}