IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Specflow C#

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Specflow C#, davranış odaklı geliştirme (BDD) destekleyen ve test senaryolarınız için özellik dosyaları oluşturmanıza olanak tanıyan açık kaynaklı bir test çerçevesidir. .NET Framework projeleriyle sorunsuz bir şekilde entegre olur.

Testleri sade bir dilde tanımlayabilirsiniz. Bu yöntem, geliştiriciler ve geliştirici olmayanlar arasında işbirliğini kolaylaştırır. Herkes test senaryolarına katkıda bulunabilir. Specflow, özellik dosyalarını kullanarak öncelikli olarak tüm testleri özellikler klasöründe yönetir ve çalıştırır.

Öte yandan, IronPDF, .NET içinde PDF manipülasyonuna odaklı bir kütüphanedir. PDF dosyalarını kolayca oluşturmanıza, düzenlemenize ve okumanıza imkan tanır. HTML'yi doğrudan PDF'lere dönüştürebilirsiniz. Bu özellik, özellikle uygulamalarınızda raporlar veya belgeler oluştururken kullanışlıdır. IronPDF, Core, Framework ve Standard dahil olmak üzere .NET'in çeşitli sürümleriyle uyumludur.

Specflow C# ve IronPDF farklı amaçlara hizmet etse de, bir geliştiricinin araç setinde değerli araçlardır. Bir projede etkili bir şekilde birleştirilebilirler. Örneğin, verilerin alınıp işlendiği bir özelliği tanımlamak ve test etmek için Specflow C#'ı kullanabilir; ardından test sonuçlarına dayalı bir rapor oluşturmak için IronPDF'i kullanabilirsiniz. Bu Specflow ve IronPDF Entegrasyon Eğitim Videosu, bu araçların uygulama geliştirme sürecinizi nasıl geliştirebileceğini gösterir.

Getting Started with Specflow C#

.NET Projelerinde Specflow Kurulumu

.NET projelerinizde Specflow kullanmaya başlamak için, öncelikle Specflow NuGet paketini yükleyerek test çerçevenizi kurmanız, özellik dosyaları oluşturmanız ve test senaryolarını tanımlamanız gerekiyor.

  1. Visual Studio'yu açın.
  2. Yeni bir .NET projesi oluşturun veya mevcut bir projeyi açın.
  3. Uzantılar menüsüne gidin ve ardından Uzantıları Yönet'e tıklayın.
  4. "Specflow" için arama yapın. Specflow uzantısını yükleyin.

Specflow C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1

Temel Kod Örneği

Specflow kurulduktan sonra, özellikler klasöründe yer alacak olan ilk özellik dosyanızı oluşturabilirsiniz. Specflow'da bir özellik dosyası, test etmek istediğiniz davranışları okunabilir bir formatta özetler. İşte yeni bir özellik dosyası oluşturmak ve senaryolar tanımlamak için basit bir örnek:

Feature: Login Feature
    Scenario: Successful Login with Valid Credentials
        Given I am on the login page
        When I enter valid credentials
        Then I should be redirected to the dashboard
Text

Bu özellik dosyası, temel bir giriş işlemini tanımlar. Given testi için sahneyi kurar. When işlemi açıklar. Then beklenen sonucu tanımlar. Bu ifadeleri sade bir şekilde İngilizce yazıyorsunuz. Bu, testin akışını ve amacını anlamayı kolaylaştırır.

Implement Features of Specflow C#

Adım Tanımlarıyla Test Yazma

Specflow'da, testler özellik dosyalarında belirtilmiş senaryolar tarafından yönlendirilir. Bu senaryoları çalıştırılabilir hale getirmek için adım tanımları gereklidir. Adım tanımları, sade dildeki adımları C# koduna bağlar. İşte adım tanımlarını nasıl tanımlayacağınız:

[Binding]
public class LoginSteps
{
    [Given(@"I am on the login page")]
    public void GivenIAmOnTheLoginPage()
    {
        // Code to navigate to the login page
    }

    [When(@"I enter valid credentials")]
    public void WhenIEnterValidCredentials()
    {
        // Code to input username and password
    }

    [Then(@"I should be redirected to the dashboard")]
    public void ThenIShouldBeRedirectedToTheDashboard()
    {
        // Code to verify the dashboard is displayed
    }
}

Bu C# sınıfı, giriş senaryosunun adımlarını temsil eder. Her metot, belirli adımları tanımak için bir dize anahtarı gibi bir Specflow özniteliği ile etiketlenmiştir.

Veri Odaklı Testler

Specflow, senaryolarınızda çeşitli test veri setlerini kullanmanıza olanak tanıyarak veri odaklı testleri destekler. Bu, çeşitli veri setleriyle senaryoları test etmenize olanak tanır. İşte bir özellik dosyasında tablo kullanma örneği:

Scenario: Login with multiple users
    Given I am on the login page
    When I login with the following credentials:
        | Username  | Password |
        | user1     | pass1    |
        | user2     | pass2    |
    Then I should see user specific dashboard
Text

Adım tanımlarınızda bu veriye şu şekilde erişebilirsiniz:

[When(@"I login with the following credentials:")]
public void WhenILoginWithTheFollowingCredentials(Table table)
{
    foreach(var row in table.Rows)
    {
        string username = row["Username"];
        string password = row["Password"];
        // Code to perform login
    }
}

Test Gezgini ile Entegrasyon

Specflow, Visual Studio'nun Test Gezgini ile entegredir; burada tüm testleri verimli bir şekilde çalıştırabilir ve yönetebilirsiniz. Bu, testlerinizi çalıştırmayı ve yönetmeyi kolay hale getirir. Projenizin doğru bir şekilde yapılandırıldığından emin olun. Projeyi derlediğinizde testleriniz Test Gezgini'nde görünecektir. Tek tek testleri veya tüm testleri aynı anda çalıştırabilirsiniz.

Paralel Test Yürütme

Specflow, tüm testlerin yürütme süresini azaltan paralel test yürütmeyi destekler. Tüm testlerin yürütülmesi için gereken süreyi azaltır. Paralel yürütmeyi etkinleştirmek için specflow.json dosyanızı veya AssemblyInfo.cs dosyasınızı yapılandırmanız gerekir:

{
  "specFlow": {
    "runtime": {
      "testThreadCount": 4,
      "testSchedulingMode": "Parallel"
    }
  }
}
JSON

Bu yapılandırma, aynı anda dört testin çalışmasına olanak tanır.

Özel Kancalar

Specflow özel kancalar tanımlamanıza olanak tanır. Bu kancalar, test yaşam döngüsünün çeşitli noktalarında kod çalıştırabilir. Herhangi bir test çalıştırılmadan önce veritabanını ayarlamak için bir kancanın nasıl tanımlanacağına yönelik bir örnek:

[BeforeTestRun]
public static void SetUpDatabase()
{
    // Code to set up database
}

Özel kancalar güçlü bir özelliktir. Test kurulum ve yıkım işlemlerini yönetmenize yardımcı olur.

Bu bölüm, .NET projelerinde test çerçevenizi geliştirmenize yardımcı olabilecek Specflow'un beş ana özelliğini gösterdi. Her özellik, test otomasyon çabalarınızın esnekliğini ve verimliliğini artırmak için tasarlanmıştır.

Specflow C# ile IronPDF Entegrasyonu

Specflow C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2

IronPDF, geliştiricilerin .NET uygulamaları içinde PDF dosyaları oluşturmasına, düzenlemesine ve görüntülemesine olanak tanıyan bir C# kütüphanesidir. Bu güçlü araç, .NET için Davranış Odaklı Geliştirme (BDD) çerçevesi olan Specflow ile birlikte kullanıldığında test cephaneliğinize değerli bir ek olabilir.

IronPDF'i entegre ederek, uygulamalarınızdaki PDF çıktılarının otomatik olarak test edilmesini sağlayabilir ve gereksinimleri karşıladıklarından emin olabilirsiniz.

Use Case of Merging IronPDF with Specflow C#

IronPDF ile Specflow'un birleştirilmesinin pratik bir kullanım durumu, uygulamanız tarafından oluşturulan bir PDF raporunun içeriğini ve biçimlendirmesini doğrulamaktır. Örneğin, bir raporun doğru verileri içerip içermediğini, beklenen düzene uyup uymadığını ve belirtilen gereklilikler içinde erişilebilir olup olmadığını otomatik olarak test edebilirsiniz. Bu entegrasyon, doğruluk belgelemesinin, örneğin fatura veya uyum raporlarının önemli olduğu senaryolarda özellikle kullanışlıdır.

IronPDF'i kurduğunuzdan emin olun. NuGet Paket konsolunu kullanarak yükleyebilirsiniz:

PM > Install-Package IronPdf

Specflow C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3

Kullanım Durumuna Ait Kod Örneği

İşte IronPDF kullanarak PDF içeriğini test etmek için bir SpecFlow adım tanımının nasıl ayarlanacağını gösteren tam bir kod örneği. Bu örnek, uygulamanız tarafından üretilen ve belirli bir metin içermesi gereken bir PDF belgesini test ettiğinizi varsayar:

using IronPdf;
using TechTalk.SpecFlow;

[Binding]
public class PdfContentSteps
{
    private string? _pdfPath;
    private PdfDocument? _pdfDocument;

    [Given(@"a PDF file generated at '(.*)'")]
    public void GivenAPDFFileGeneratedAt(string pdfPath)
    {
        _pdfPath = pdfPath;
        _pdfDocument = new PdfDocument(_pdfPath);
    }

    [Then(@"the PDF should contain the text '(.*)'")]
    public void ThenThePDFShouldContainTheText(string expectedText)
    {
        // Extract text from the PDF and check if it contains the expected text
        var textContent = _pdfDocument.ExtractAllText();
        if (!textContent.Contains(expectedText))
        {
            throw new Exception("PDF content does not contain the expected text.");
        }
    }
}

Bu kodda, önce belirlenen bir yoldan bir PDF yükleyen ve ardından bu PDF'nin beklenen metni içerdiğini doğrulayan bir Specflow adımı tanımlıyoruz. IronPdf.PdfDocument sınıfı, PDF dosyasını yüklemek ve işlemek için kullanılır. Bu kurulum, PDF doğrulamasını otomatik testlerinize entegre etmenize olanak tanır, bu da hataları yakalamayı kolaylaştırır.

Sonuç

Özetlemek gerekirse, Specflow C# ve IronPDF'in bir araya getirilmesi, özellikle PDF belgeleriyle uğraşırken .NET projelerinizin yeteneklerini artırır. Specflow, sade bir dil kullanarak detaylı test senaryolarını tanımlama ve yürütmede mükemmeldir.

IronPDF, buna güçlü PDF manipülasyon yetenekleri ile katkıda bulunur. Bu iki güçlü aracı entegre ederek, test sürecinizi daha da düzene koyabilirsiniz. Bu özellikleri denemek istiyorsanız, IronPDF'i ücretsiz deneyin.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez