Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Birim testleri oluşturup çalıştırarak kodunuzun beklendiği gibi çalışıp çalışmadığını denetleyin. Buna birim testi denir çünkü programınızın işlevselliğini ayrı birimler olarak test edilebilecek ayrı test edilebilir davranışlara bölersiniz. Visual Studio Test Gezgini, birim testlerinizi çalıştırmak ve sonuçlarını Visual Studio'da görüntülemek için esnek ve verimli bir yol sağlar. Visual Studio, yönetilen ve yerel kod için Microsoft birim testi çerçevelerini yükler. Birim testleri oluşturmak, bunları çalıştırmak ve bu testlerin sonuçlarını raporlamak için bir birim testi çerçevesi kullanın. Kodunuzun hala düzgün çalışıp çalışmadığını test etmek için değişiklik yaptığınızda birim testlerini yeniden çalıştırın. Visual Studio Enterprise bunu, kod değişikliklerinizden etkilenen testleri algılayan ve siz yazarken arka planda çalıştıran Canlı Birim Testi ile otomatik olarak yapabilir.
Birim testi, yazılım geliştirme iş akışınızın ayrılmaz bir parçası olduğunda kodunuzun kalitesi üzerinde en büyük etkiye sahiptir. Bir işlev veya başka bir uygulama kodu bloğu yazdığınız anda, standart, sınır ve yanlış giriş verileri durumlarına yanıt olarak kodun davranışını doğrulayan ve kod tarafından yapılan açık veya örtük varsayımları denetleyebilen birim testleri oluşturun. Test temelli geliştirme ile, kodu yazmadan önce birim testlerini oluşturursunuz, böylece birim testlerini hem tasarım belgeleri hem de işlevsel belirtimler olarak kullanırsınız.
Test Gezgini, Test Gezgini eklenti arabirimlerini uygulayan üçüncü taraf ve açık kaynak birim test çerçevelerini de çalıştırabilir. Bu çerçevelerin çoğunu Visual Studio Uzantı Yöneticisi ve Visual Studio galerisi aracılığıyla ekleyebilirsiniz. Daha fazla bilgi için bkz. üçüncü taraf birim test çerçevelerini yükleme.
Get started
Sizi doğrudan kodlamaya götüren birim testine giriş için şu makalelerden birine bakın:
Banka çözümü örneği
Bu makalede örnek olarak adlandırılan MyBank kurgusal bir uygulamanın geliştirilmesini kullanacağız. Bu makaledeki açıklamaları izlemek için gerçek koda ihtiyacınız yoktur. Test yöntemleri C# dilinde yazılır ve Yönetilen Kod için Microsoft Unit Testing Framework kullanılarak sunulur. Ancak, kavramlar kolayca diğer dillere ve çerçevelere aktarılır.
Uygulama için MyBank ilk tasarım denememiz, tek bir hesabı ve bankayla olan işlemlerini temsil eden bir hesap bileşenini ve tek tek hesapları toplama ve yönetme işlevini temsil eden bir veritabanı bileşenini içerir.
İki proje içeren bir Bank çözüm oluşturuyoruz:
AccountsBankDB
Projeyi tasarlamaya Accounts yönelik ilk denememiz, bir hesap hakkında temel bilgileri tutan bir sınıf, hesaptan varlıkların yatırılması ve geri çekilmesi gibi her tür hesabın ortak işlevselliğini belirten bir arabirim ve bir denetim hesabını temsil eden arabirimden türetilmiş bir sınıf içerir. Hesaplar projelerine aşağıdaki kaynak dosyaları oluşturarak başlıyoruz:
AccountInfo.cs bir hesabın temel bilgilerini tanımlar.
IAccount.cs bir hesap için, bir hesaptan varlık yatırma ve çekme ve hesap bakiyesini alma yöntemleri de dahil olmak üzere standart
IAccountbir arabirim tanımlar.CheckingAccount.cs, denetim hesabı arabirimini
CheckingAccountuygulayan sınıfı içerirIAccount.
Bir çek hesabından çekmenin yapması gereken bir şeyin, çekilen tutarın hesap bakiyesinden daha az olduğundan emin olmak olduğunu deneyimden biliyoruz. Bu nedenle, IAccount.Withdraw içindeki CheckingAccount metodunu, bu koşulu kontrol eden bir yöntemle geçersiz kılarız. yöntemi şu şekilde görünebilir:
public void Withdraw(double amount)
{
if(m_balance >= amount)
{
m_balance -= amount;
}
else
{
throw new ArgumentException(nameof(amount), "Withdrawal exceeds balance!");
}
}
Artık kodumuz olduğuna göre test etme zamanı geldi.
Copilot ile birim testleri oluşturma
Visual Studio 2026 Insider derlemesinde başlayarak, birim testlerini otomatik olarak oluşturmak için .NET için GitHub Copilot testlerini kullanabilirsiniz. .NET için GitHub Copilot testi yalnızca testleri oluşturmakla kalmaz, aynı zamanda testlerde hata ayıklar ve bunları Test Gezgini'nde çalıştırır. Daha fazla bilgi için bkz. .NET için GitHub Copilot testlerine genel bakış. Bu, test oluşturmak için önerilen yöntemdir.
Birim testleri koddan oluşturmak için alternatif olarak Copilot /tests eğik çizgi komutunu kullanabilirsiniz. Örneğin, NUnit testleri oluşturmak için yazabilirsiniz /tests using NUnit Framework . Daha fazla bilgi için bkz. Copilot Chat'te eğik çizgi komutlarını kullanma.
Birim testleri oluşturma ve çalıştırma
Visual Studio 2026 Insider derlemesini kullanarak birim testlerini otomatik olarak oluşturmak için .NET için GitHub Copilot testini kullanabilirsiniz.
Bu makalede açıklanan yordamların çoğu el ile oluşturulan testler için geçerlidir. Birim testi hakkında daha ayrıntılı bilgi edinmek istiyorsanız, bu makalenin geri kalanını okuyabilir veya Test Gezgini'nde testleri çalıştırma bölümüne atlayabilirsiniz.
Copilot ile birim testleri oluşturma
Koddan birim testleri oluşturmak için Copilot /tests slash komutunu kullanabilirsiniz. Örneğin, NUnit testleri oluşturmak için yazabilirsiniz /tests using NUnit Framework . Daha fazla bilgi için bkz. Copilot Chat'te eğik çizgi komutlarını kullanma.
Birim testi projeleri ve test yöntemleri oluşturma (C#)
C# için genellikle kodunuzdan birim testi projesini ve birim testi saptamalarını oluşturmak daha hızlıdır. İsterseniz gereksinimlerinize bağlı olarak birim testi projesini ve testlerini el ile oluşturmayı da seçebilirsiniz. 3. taraf çerçevesiyle koddan birim testleri oluşturmak istiyorsanız şu uzantılardan birinin yüklü olması gerekir: NUnit veya xUnit. C# kullanmıyorsanız, bu bölümü atlayın ve Birim testi projesini ve birim testlerini el ile oluşturma bölümüne gidin.
Birim testi projesi ve birim testi saptamaları oluşturma
Kod düzenleyicisi penceresinde sağ tıklayın ve sağ tıklama menüsünden Birim Testleri Oluştur'u seçin.
Uyarı
Birim Testleri Oluştur menü komutu yalnızca C# kodu için kullanılabilir. Bu yöntemi .NET Core veya .NET Standard ile kullanmak için Visual Studio 2019 veya üzeri gereklidir.
Birim testlerinizi oluşturmak için varsayılan değerleri kabul etmek veya birim testi projesini ve birim testlerini oluşturmak ve adlandırmak için kullanılan değerleri değiştirmek için Tamam'ı seçin. Birim testi yöntemlerine varsayılan olarak eklenen kodu seçebilirsiniz.
Birim testi saptamaları, sınıfındaki tüm yöntemler için yeni bir birim testi projesinde oluşturulur.
Şimdi, birim testinizi anlamlı hale getirmek için testlerinizi yazma ve kodunuzu kapsamlı bir şekilde test etmek için eklemek isteyebileceğiniz ek birim testleri hakkında bilgi edinin.
Birim testi projeleri ve test yöntemleri oluşturma (C#)
C# için genellikle kodunuzdan birim testi projesini ve birim testi saptamalarını oluşturmak daha hızlıdır. İsterseniz gereksinimlerinize bağlı olarak birim testi projesini ve testlerini el ile oluşturmayı da seçebilirsiniz. 3. taraf çerçevesiyle koddan birim testleri oluşturmak istiyorsanız şu uzantılardan birinin yüklü olması gerekir: NUnit veya xUnit. C# kullanmıyorsanız, bu bölümü atlayın ve Birim testi projesini ve birim testlerini el ile oluşturma bölümüne gidin.
Birim testi projesi ve birim testi saptamaları oluşturma
Kod düzenleyicisi penceresinde sağ tıklayın ve sağ tıklama menüsünden Birim Testleri Oluştur'u seçin.
Uyarı
Birim Testleri Oluştur menü komutu yalnızca C# kodu için kullanılabilir. Bu yöntemi .NET Core veya .NET Standard ile kullanmak için Visual Studio 2019 veya üzeri gereklidir.
Birim testlerinizi oluşturmak için varsayılan değerleri kabul etmek veya birim testi projesini ve birim testlerini oluşturmak ve adlandırmak için kullanılan değerleri değiştirmek için Tamam'ı seçin. Birim testi yöntemlerine varsayılan olarak eklenen kodu seçebilirsiniz.
Birim testi saptamaları, sınıfındaki tüm yöntemler için yeni bir birim testi projesinde oluşturulur.
Şimdi, birim testinizi anlamlı hale getirmek için testlerinizi yazma ve kodunuzu kapsamlı bir şekilde test etmek için eklemek isteyebileceğiniz ek birim testleri hakkında bilgi edinin.
Birim testi projesini ve birim testlerini el ile oluşturma
Birim testi projesi genellikle tek bir kod projesinin yapısını yansıtır. MyBank örneğinde, çözüme AccountsTests ve BankDbTests adlı Bank iki birim testi projesi eklersiniz. Test projesi adları rastgeledir, ancak standart adlandırma kuralını benimsemek iyi bir fikirdir.
Çözüme birim testi projesi eklemek için:
Çözüm Gezgini'nde çözüme sağ tıklayın ve Yeni Proje> seçin.
Kullanmak istediğiniz test çerçevesine yönelik birim testi proje şablonunu bulmak için proje şablonu arama kutusuna test yazın. (Bu makaledeki örneklerde MSTest kullanıyoruz.)
Sonraki sayfada projeyi adlandırın. Örneğimizin projesini
Accountstest etmek için projeyiAccountsTestsolarak adlandırabilirsiniz.Birim testi projenizde, test altındaki kod projesine, örneğimizde Hesaplar projesine bir başvuru ekleyin.
Kod projesine referans oluşturmak için:
Çözüm Gezgini'ndeki birim testi projesinde Başvurular veya Bağımlılıklar düğümüne sağ tıklayıp Proje Başvurusu Ekle veya Başvuru Ekle'yi (hangisi varsa) seçin.
Başvuru Yöneticisi iletişim kutusunda Çözüm düğümünü açın ve Projeler'i seçin. Kod projesi adını seçin ve iletişim kutusunu kapatın.
Her birim testi projesi, kod projesindeki sınıfların adlarını yansıtan sınıflar içerir. Bizim örneğimizde proje AccountsTests aşağıdaki sınıfları içerir:
AccountInfoTestssınıfı, projedeki sınıfınAccountInfoAccountsbirim testi yöntemlerini içerirCheckingAccountTestssınıfı içinCheckingAccountbirim testi yöntemlerini içerir.
Testlerinizi yazma
Kullandığınız birim testi çerçevesi ve Visual Studio IntelliSense, bir kod projesi için birim testlerinizin kodunu yazma konusunda size yol gösterir. Test Gezgini'nde çalıştırmak için çoğu çerçeve, birim testi yöntemlerini tanımlamak için belirli öznitelikler eklemenizi gerektirir. Çerçeveler ayrıca test yönteminin geçirilip geçirilmediğini veya başarısız olduğunu göstermek için genellikle assert deyimleri veya yöntem öznitelikleri aracılığıyla bir yol sağlar. Diğer öznitelikler, isteğe bağlı kurulum yöntemlerini belirler ve bu yöntemler sınıf başlatıldığında veya her test yönteminden önce çalıştırılır. Ayrıca, her test yönteminden sonra ve sınıf yok edilmeden önce çalıştırılan sona erdirme yöntemlerini de tanımlar.
AAA (Düzenleme, Eylem, Onay) deseni, test altındaki bir yöntem için birim testleri yazmanın yaygın bir yoludur.
Birim testi yönteminin Düzenleme bölümü nesneleri başlatır ve test altındaki yönteme geçirilen verilerin değerini ayarlar.
Act bölümü, düzenlenmiş parametrelerle test altındaki yöntemini çağırır.
Assert bölümü, test altındaki yönteminin eyleminin beklendiği gibi davrandığını doğrular. .NET için, sınıftaki Assert yöntemler genellikle doğrulama için kullanılır.
Örneğimizin yöntemini test CheckingAccount.Withdraw etmek için iki test yazabiliriz: biri yöntemin standart davranışını doğrulayan, diğeri de bakiyeden daha fazla çekme işleminin başarısız olacağını doğrulayan bir test (Aşağıdaki kod, .NET'te desteklenen bir MSTest birim testi gösterir.). sınıfına CheckingAccountTests aşağıdaki yöntemleri ekleriz:
[TestMethod]
public void Withdraw_ValidAmount_ChangesBalance()
{
// arrange
double currentBalance = 10.0;
double withdrawal = 1.0;
double expected = 9.0;
var account = new CheckingAccount("JohnDoe", currentBalance);
// act
account.Withdraw(withdrawal);
// assert
Assert.AreEqual(expected, account.Balance);
}
[TestMethod]
public void Withdraw_AmountMoreThanBalance_Throws()
{
// arrange
var account = new CheckingAccount("John Doe", 10.0);
// act and assert
Assert.ThrowsException<System.ArgumentException>(() => account.Withdraw(20.0));
}
Microsoft birim testi çerçeveleri hakkında daha fazla bilgi için aşağıdaki makalelerden birine bakın:
Birim testleri için zaman aşımlarını ayarlama
MSTest çerçevesini kullanıyorsanız, tek bir test yönteminde zaman aşımı ayarlamak için öğesini kullanabilirsiniz TimeoutAttribute :
[TestMethod]
[Timeout(2000)] // Milliseconds
public void My_Test()
{ ...
}
Zaman aşımını izin verilen en yüksek değere ayarlamak için:
[TestMethod]
[Timeout(TestTimeout.Infinite)] // Milliseconds
public void My_Test ()
{ ...
}
Test Gezgini'nde testleri çalıştırma
Test projesini oluşturduğunuzda, testler Test Gezgini'nde görünür. Test Gezgini görünmüyorsa Visual Studio menüsünde Test'i seçin, Windows'u ve ardından Test Gezgini'ni seçin (veya Ctrl + E, T tuşlarına basın).
Testlerinizi çalıştırır, yazar ve yeniden çalıştırırken, Test Gezgini sonuçları Başarısız Testler, Geçirilen Testler, Atlanan Testler ve Çalıştırılmayan Testler gruplarında görüntüleyebilir. Araç çubuğundaki farklı gruplandırma ölçütü seçeneklerini belirleyebilirsiniz.
Ayrıca genel düzeydeki arama kutusundaki metinleri eşleştirerek veya önceden tanımlanmış filtrelerden birini seçerek herhangi bir görünümdeki testleri filtreleyebilirsiniz. İstediğiniz zaman herhangi bir test seçimini çalıştırabilirsiniz. Bir test çalıştırmasının sonuçları, Gezgin penceresinin üst kısmındaki başarı/başarısızlık çubuğunda hemen görünür. Testi seçtiğinizde test yöntemi sonucunun ayrıntıları görüntülenir.
Testleri çalıştırma ve görüntüleme
Test Gezgini araç çubuğu, ilgilendiğiniz testleri bulmanıza, düzenlemenize ve çalıştırmanıza yardımcı olur.
Tüm testlerinizi çalıştırmak için Tümünü Çalıştır'ı seçebilir (veya Ctrl + R, V tuşlarına basabilir) veya çalıştırılacak testlerin bir alt kümesini seçmek için Çalıştır'ı seçebilirsiniz (Ctrl + R, T). Test ayrıntıları bölmesinde bu testin ayrıntılarını görüntülemek için bir test seçin. Seçili testin kaynak kodunu görüntülemek için sağ tıklama menüsünden Testi Aç'ı (Klavye: F12) seçin.
Tek tek testlerin herhangi bir sırada çalıştırılmasını engelleyen bağımlılıkları yoksa, araç çubuğunun ayarlar menüsünde paralel test yürütmeyi açın. Bu, tüm testleri çalıştırmak için geçen süreyi önemli ölçüde azaltabilir.
Her derlemeden sonra testleri çalıştırma
Her yerel derlemeden sonra birim testlerinizi çalıştırmak için Test Gezgini araç çubuğunda ayarlar simgesini açın ve Derlemeden Sonra Testleri Çalıştır'ı seçin.
Test listesini filtreleme ve gruplandırma
Çok sayıda test yaptığınızda, listeyi belirtilen dizeye göre filtrelemek için Test Gezgini arama kutusuna yazabilirsiniz. Filtre listesinden seçim yaparak filtre olayınızı daha fazla kısıtlayabilirsiniz.
| Button | Description |
|---|---|
|
Testlerinizi kategoriye göre gruplandırmak için Gruplandır düğmesini seçin. |
Daha fazla bilgi için bkz. Test Gezgini ile birim testleri çalıştırma.
Sorular ve Cevaplar
S: Birim testlerinin hatalarını nasıl ayıklarım?
Y: Testleriniz için hata ayıklama oturumu başlatmak için Test Gezgini'ni kullanın. Visual Studio hata ayıklayıcısıyla kodunuzu sorunsuzca adım adım ilerleterek birim testleri ile test altındaki proje arasında gidip gelirsiniz. Hata ayıklamayı başlatmak için:
Visual Studio düzenleyicisinde, hata ayıklamak istediğiniz bir veya daha fazla test yönteminde bir kesme noktası ayarlayın.
Uyarı
Test yöntemleri herhangi bir sırada çalışabildiğinden, hata ayıklamak istediğiniz tüm test yöntemlerinde kesme noktaları ayarlayın.
Test Gezgini'nde test yöntemlerini seçin ve ardından kısayol menüsünden Seçili Testlerde Hata Ayıkla'yı seçin.
Birim testlerinde hata ayıklama hakkında daha fazla bilgi edinin.
S: TDD kullanıyorsam testlerimden nasıl kod oluşturabilirim?
Y: Proje kodunuzda sınıflar ve yöntemler oluşturmak için Hızlı Eylemler'i kullanın. Oluşturmak istediğiniz sınıfı veya yöntemi çağıran bir test yönteminde bir deyim yazın, ardından hatanın altında görünen ampulü açın. Çağrı yeni sınıfın bir oluşturucusundaysa, menüden Tür oluştur'u seçin ve sınıfı kod projenize eklemek için sihirbazı izleyin. Çağrı bir yönteme ise IntelliSense menüsünden Yöntem oluştur'u seçin.
S: Testi çalıştırmak için giriş olarak birden çok veri kümesi alan birim testleri oluşturabilir miyim?
Y: Evet.
Veri temelli test yöntemleri , bir değer aralığını tek bir birim test yöntemiyle test edebilirsiniz. Test etmek istediğiniz değişken değerlerini içeren veri kaynağını belirten test yöntemi için bir DataRowveya DynamicDataDataSource özniteliği kullanın.
Öznitelikli yöntem, veri kaynağındaki her satır için bir kez çalışır. Yinelemelerden herhangi biri başarısız olursa Test Gezgini yöntemi için bir test hatası bildirir. yönteminin test sonuçları ayrıntı bölmesi, her veri satırı için geçiş/başarısız durum yöntemini gösterir.
Veri temelli birim testleri hakkında daha fazla bilgi edinin.
S: Birim testlerimde kodumun ne kadarının test edilmiş olduğunu görüntüleyebilir miyim?
Y: Evet. Visual Studio'daki Visual Studio Code kapsam aracını kullanarak birim testleriniz tarafından test edilen kodunuzun miktarını belirleyebilirsiniz. Yerel ve yönetilen diller ve Birim Test Çerçevesi tarafından çalıştırılabilir tüm birim testi çerçeveleri desteklenir.
Y: Evet. Visual Studio Enterprise'daki Visual Studio Code kapsam aracını kullanarak birim testleriniz tarafından gerçekten test edilen kodunuzun miktarını belirleyebilirsiniz. Yerel ve yönetilen diller ve Birim Test Çerçevesi tarafından çalıştırılabilir tüm birim testi çerçeveleri desteklenir.
Kod kapsamını seçili testlerde veya çözümdeki tüm testlerde çalıştırabilirsiniz. Kod Kapsamı Sonuçları penceresi, satır, işlev, sınıf, ad alanı ve modül tarafından çalıştırılan ürün kodu bloklarının yüzdesini görüntüler.
Bir çözümde test yöntemleri için kod kapsamını çalıştırmak içinTüm Testler için Test> Çözümleme Kod Kapsamı'nı seçin.
Kapsam sonuçları Kod Kapsamı Sonuçları penceresinde görünür.
Kod kapsamı hakkında daha fazla bilgi edinin.
S: Kodumda dış bağımlılıkları olan yöntemleri test edebilir miyim?
Y: Evet. Visual Studio Enterprise kullanıyorsanız Microsoft Fakes, yönetilen kod için birim testi çerçevelerini kullanarak yazdığınız test yöntemleriyle kullanılabilir.
Microsoft Fakes, dış bağımlılıklar için yedek sınıflar oluşturmak için iki yaklaşım kullanır:
Saplamalar hedef bağımlılık sınıfının üst interfazından türetilen yedek sınıflar oluşturur. Saplama yöntemleri, hedef sınıfın genel sanal yöntemleriyle değiştirilebilir.
Shims, sanal olmayan metotlar için çağrıları hedef metota alternatif bir shim metoduna yönlendirmek amacıyla çalışma zamanı enstrümantasyonunu kullanır.
Her iki yaklaşımda da, test yönteminde istediğiniz davranışı belirtmek için bağımlılık yöntemine yönelik çağrıların oluşturulan temsilcilerini kullanırsınız.
Microsoft Fakes ile birim testi yöntemlerini yalıtma hakkında daha fazla bilgi edinin.
S: Birim testleri oluşturmak için diğer birim testi çerçevelerini kullanabilir miyim?
Y: Evet, diğer çerçeveleri bulmak ve yüklemek için bu adımları izleyin. Visual Studio'yu yeniden başlattıktan sonra, birim testlerinizi oluşturmak için çözümünüzü yeniden açın ve ardından yüklü çerçevelerinizi buradan seçin:
Birim testi saptamalarınız seçilen çerçeve kullanılarak oluşturulur.
S: Birim testi sonuçlarımı nasıl dışarı aktarebilirim?
Y: Birim testlerini yapılandırmak ve test sonuçları dosyasını ayarlamak için komut satırı veya Visual Studio IDE ile bir .runsettings dosyası kullanabilirsiniz. Daha fazla bilgi için bkz . LoggerRunSettings öğesi.