IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Specflow C#

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Specflow C# to open-source'owy framework testowy, który wspiera rozwój oparty na zachowaniu (BDD) i pozwala na tworzenie plików funkcji dla scenariuszy testowych. Bezproblemowo integruje się z projektami .NET Framework.

Testy można opisywać w prostym języku. Ta metoda ułatwia współpracę między programistami a nie-programistami. Każdy może wnosić wkład do scenariuszy testowych. Specflow wykorzystuje przede wszystkim pliki funkcji do zarządzania i wykonywania wszystkich testów w folderze funkcji.

Natomiast IronPDF to biblioteka skoncentrowana na manipulacji PDF w ramach .NET. Pozwala łatwo tworzyć, edytować i czytać pliki PDF. Można bezpośrednio konwertować HTML na PDF. Funkcja ta jest szczególnie przydatna do generowania raportów lub dokumentów w aplikacjach. IronPDF jest kompatybilny z różnymi wersjami .NET, w tym Core, Framework i Standard.

Chociaż Specflow C# i IronPDF mają różne cele, są cennymi narzędziami w zestawie narzędzi programisty. Można je skutecznie łączyć w ramach projektu. Na przykład, można użyć Specflow C# do zdefiniowania i przetestowania funkcji, gdzie dane są pobierane i przetwarzane, a następnie użyć IronPDF do generowania raportu na podstawie wyników testów. Ten Specflow i IronPDF Integration Tutorial pokazuje, jak te narzędzia mogą działać razem, aby poprawić proces rozwoju aplikacji.

Getting Started with Specflow C#

Konfiguracja Specflow w projektach .NET

Aby zacząć używać Specflow w projektach .NET, najpierw należy zainstalować pakiet NuGet Specflow, aby skonfigurować ramy testowe, tworzyć pliki funkcji i definiować scenariusze testowe.

  1. Otwórz program Visual Studio.
  2. Utwórz nowy projekt .NET lub otwórz istniejący.
  3. Przejdź do menu Rozszerzenia, a następnie Zarządzaj rozszerzeniami.
  4. Wyszukaj "Specflow". Zainstaluj rozszerzenie Specflow.

Specflow C# (How It Works For Developers): Figure 1

Podstawowy przykład kodu

Po skonfigurowaniu Specflow można utworzyć pierwszy plik funkcji, który zostanie umieszczony w folderze funkcji. Plik funkcji w Specflow opisuje zachowania, które chcesz przetestować, w czytelny sposób. Oto prosty przykład, jak utworzyć nowy plik funkcji i zdefiniować scenariusze:

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

Ten plik funkcji opisuje podstawowy proces logowania. Given ustawia scene dla testu. When opisuje dzialanie. Then definiuje oczekiwany wynik. Te stwierdzenia piszesz w prostym języku angielskim. To ułatwia zrozumienie przepływu i celu testu.

Implement Features of Specflow C#

Pisanie testów z definicjami kroków

W Specflow testy są napędzane przez scenariusze zawarte w plikach funkcji. Aby te scenariusze były wykonane, potrzebujesz definicji kroków. Definicje kroków wiążą proste kroki językowe z kodem C#. Oto jak definiujesz definicje kroków:

[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
    }
}

Ta klasa C# reprezentuje kroki scenariusza logowania. Każda metoda jest oznaczona atrybutem Specflow odpowiadającym typowi kroku, takim jak klucz string dla identyfikacji określonych kroków.

Testowanie sterowane danymi

Specflow wspiera testowanie sterowane danymi, pozwalając na wykorzystanie różnych zbiorów danych testowych w scenariuszach. To pozwala testować scenariusze z różnymi zestawami danych. Oto przykład użycia tabeli w pliku funkcji:

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

W definicjach kroku możesz uzyskać dostęp do tych danych w następujący sposób:

[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
    }
}

Integracja z Explorerem Testów

Specflow integruje się z Exploratoriem Testów Visual Studio, gdzie można efektywnie uruchamiać i zarządzać wszystkimi testami. To ułatwia uruchamianie i zarządzanie testami. Upewnij się, że twój projekt jest poprawnie skonfigurowany. Twoje testy pojawią się w Exploratorze Testów po zbudowaniu projektu. Możesz uruchamiać pojedyncze testy lub wszystkie testy jednocześnie.

Równoległe wykonanie testów

Specflow wspiera uruchamianie testów równolegle, aby skrócić czas wykonania. To zmniejsza czas potrzebny na wykonanie wszystkich testów. Należy skonfigurować swój plik specflow.json lub AssemblyInfo.cs, aby umożliwić równoległe wykonanie:

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

Ta konfiguracja pozwala na jednoczesne uruchamianie do czterech testów.

Własne zaczepy

Specflow pozwala na definiowanie własnych zaczepów. Te zaczepy mogą wykonywać kod w różnych punktach cyklu życia testów. Oto jak możesz zdefiniować zaczep do skonfigurowania bazy danych przed uruchomieniem jakichkolwiek testów:

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

Własne zaczepy to potężna funkcja. Pomagają w zarządzaniu procesami konfiguracji i likwidacji testów.

Ta sekcja obejmowała pięć kluczowych funkcji Specflow, które mogą poprawić twoją ramę testową w projektach .NET. Każda funkcja jest zaprojektowana, aby poprawić elastyczność i efektywność twoich wysiłków w automatyzacji testów.

Integracja Specflow C# z IronPDF

Specflow C# (How It Works For Developers): Figure 2

IronPDF to biblioteka dla C#, która pozwala programistom generować, manipulować i renderować pliki PDF w aplikacjach .NET. To potężne narzędzie może być cennym dodatkiem do arsenału testingowego, gdy jest używane z Specflow, frameworkiem BDD dla .NET.

Dzięki integracji IronPDF, można zautomatyzować testowanie wyników PDF w twoich aplikacjach, zapewniając, że spełniają one wymagane specyfikacje.

Use Case of Merging IronPDF with Specflow C#

Praktyczny przypadek użycia kombinacji IronPDF ze Specflow to walidacja zawartości i formatowania raportu PDF generowanego przez twoją aplikację. Na przykład, można automatycznie testować, czy raport zawiera prawidłowe dane, spełnia oczekiwany układ i jest dostępny w ramach określonych wymagań. Ta integracja jest szczególnie przydatna w sytuacjach, gdy dokładna dokumentacja, taka jak faktury lub raporty zgodności, jest kluczowa.

Upewnij się, że zainstalowałeś IronPDF. Można go zainstalować przy użyciu konsoli pakietów NuGet:

PM > Install-Package IronPdf

Specflow C# (How It Works For Developers): Figure 3

Przykład kodu przypadku użycia

Oto kompletny przykład kodu, który pokazuje, jak skonfigurować definicję kroku SpecFlow do testowania zawartości PDF przy użyciu IronPDF. Ten przykład zakłada, że testujesz dokument PDF generowany przez twoją aplikację, który powinien zawierać określony tekst:

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.");
        }
    }
}

W tym kodzie definiujemy krok Specflow, który najpierw ładuje PDF z określonej ścieżki, a następnie weryfikuje, że ten PDF zawiera oczekiwany tekst. Klasa IronPdf.PdfDocument jest używana do ładowania i manipulacji plikiem PDF. Ta konfiguracja pozwala na integrację walidacji PDF w automatycznych testach, co ułatwia wykrywanie błędów.

Wnioski

Specflow C# (How It Works For Developers): Figure 4

Podsumowując, łączenie Specflow C# i IronPDF zwiększa możliwości twoich projektów .NET, zwłaszcza przy pracy z dokumentami PDF. Specflow doskonale spisuje się w definiowaniu i wykonywaniu szczegółowych scenariuszy testowych przy użyciu prostego języka.

IronPDF uzupełnia to, zapewniając solidne możliwości manipulacji PDF. Integrując te dwa potężne narzędzia, można usprawnić proces testowania. Jeśli chcesz zapoznać się z tymi funkcjami, wypróbuj IronPDF za darmo.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta