xUnit/MSTest kurulumu ve doğrulamalar
Test yapısını (Arrange-Act-Assert) öğrenin, doğrulamaların testleri nasıl başarısız kıldığını görün ve fikirleri MSTest/xUnit özniteliklerine uyarlayın.
xUnit/MSTest kurulumu ve doğrulamalar, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.
Birim testi nedir?
Amaç: Küçük ve tekrarlanabilir birim testleri yazmak.
- Ayrı bir test projesi MSTest veya xUnit kullanır
- Her test tek bir davranışı kontrol eder
- Açık adlar ve doğrulamalar kullanın
AAA kalıbı
Testler Arrange → Act → Assert adımlarını izler. Burada bir doğrulamayı basit bir kontrolle benzetiyoruz.
using System;
public static class MathUtil
{
// Method under test
public static int Add(int a, int b)
{
return a + b;
}
}
public class Program
{
public static void Main(string[] args)
{
// Arrange
int a = 2;
int b = 3;
int expected = 5;
// Act
int actual = MathUtil.Add(a, b);
// Assert (manual check for this console demo)
if (actual == expected)
Console.WriteLine("PASS: Add returned " + actual);
else
Console.WriteLine("FAIL: expected " + expected + " but got " + actual);
}
}
Doğrulama davranışı
Bir doğrulama, uyuşmazlık olduğunda özel durum oluşturur. Gerçek çerçeveler de benzer şekilde çalışır (daha zengin bir API ve daha iyi raporlarla).
using System;
public static class Assert
{
public static void AreEqual(int expected, int actual)
{
if (expected != actual)
throw new Exception("AreEqual failed: expected " + expected + ", actual " + actual);
}
public static void IsTrue(bool condition, string message)
{
if (!condition) throw new Exception("IsTrue failed: " + message);
}
}
public static class MathUtil
{
public static int Mul(int a, int b) { return a * b; }
}
public class Program
{
public static void Main(string[] args)
{
try
{
int r = MathUtil.Mul(2, 4);
Assert.AreEqual(8, r); // pass
Assert.IsTrue(r % 2 == 0, "even"); // pass
Console.WriteLine("All assertions passed.");
}
catch (Exception ex)
{
Console.WriteLine("TEST FAILED: " + ex.Message);
}
}
}
Başarılı test örneği
Her test tek bir davranışı kontrol eder. Gerçek MSTest/xUnit ortamında başarısız bir Assert, testi kırmızı olarak işaretler.
using System;
public static class StringUtil
{
public static string Repeat(string s, int n)
{
if (n < 0) throw new ArgumentOutOfRangeException("n");
string r = "";
for (int i = 0; i < n; i++) r += s;
return r;
}
}
public static class Assert
{
public static void AreEqual(string expected, string actual)
{
if (expected != actual)
throw new Exception("AreEqual failed: expected [" + expected + "], actual [" + actual + "]");
}
}
public class Program
{
static void TestRepeat_Happy()
{
string got = StringUtil.Repeat("ab", 3);
Assert.AreEqual("ababab", got); // pass
}
static void TestRepeat_EmptyTimesZero()
{
string got = StringUtil.Repeat("x", 0);
Assert.AreEqual("", got); // pass
}
public static void Main(string[] args)
{
try { TestRepeat_Happy(); Console.WriteLine("PASS: Happy"); } catch (Exception ex) { Console.WriteLine("FAIL: Happy -> " + ex.Message); }
try { TestRepeat_EmptyTimesZero(); Console.WriteLine("PASS: Zero"); } catch (Exception ex) { Console.WriteLine("FAIL: Zero -> " + ex.Message); }
}
}
MSTest ve xUnit eşlemesi
MSTest temelleri:
- Sınıfın üzerinde [TestClass]
- Her testin üzerinde [TestMethod]
- Assert.AreEqual/IsTrue/AreNotEqual…
xUnit temelleri:
- Bir test yöntemi için [Fact]
- Assert.Equal/True/False…
- Test sınıfı özniteliği gerekmez
Adlandırma ve kapsam ipuçları
İpuçları:
- Testleri Method_Scenario_ExpectedResult biçiminde adlandırın
- Test başına tek bir doğrulama veya tek bir davranış kullanın
- Testleri küçük ve bağımsız tutun
Başarısızlıklara doğrulamalar neden olur
Özet
Özet: AAA kalıbını kullanın, beklenen ile gerçek değeri doğrulamalar aracılığıyla karşılaştırın ve MSTest ([TestMethod]) veya xUnit ([Fact]) ile eşleyin.
Sıkça Sorulan Sorular
“xUnit/MSTest kurulumu ve doğrulamalar” dersi ücretsiz mi?
Evet — “xUnit/MSTest kurulumu ve doğrulamalar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.
“xUnit/MSTest kurulumu ve doğrulamalar” dersinde ne öğreneceğim?
Test yapısını (Arrange-Act-Assert) öğrenin, doğrulamaların testleri nasıl başarısız kıldığını görün ve fikirleri MSTest/xUnit özniteliklerine uyarlayın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“xUnit/MSTest kurulumu ve doğrulamalar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- xUnit/MSTest kurulumu ve doğrulamalar
- Arayüzlerle sahte nesneler ve test verisi oluşturucuları
- Başarısız testlerde hata ayıklama