.NET-HILFE

Specflow C# (Wie es für Entwickler funktioniert)

Veröffentlicht 1. Juli 2024
Teilen Sie:

Specflow C#

Specflow C# ist ein Open-Source-Testframework, das die verhaltensgesteuerte Entwicklung unterstützt (BDD) und ermöglicht es Ihnen, Feature-Dateien für Ihre Testszenarien zu erstellen. Es lässt sich nahtlos in .NET-Framework-Projekte integrieren.

Sie können Tests in einfacher Sprache beschreiben. Diese Methode erleichtert die Zusammenarbeit zwischen Entwicklern und Nicht-Entwicklern. Jeder kann zu den Testszenarien beitragen. Specflow verwendet hauptsächlich Feature-Dateien, um alle Tests im Feature-Ordner zu verwalten und auszuführen.

IronPDF hingegen ist eine Bibliothek, die sich auf die PDF-Bearbeitung in .NET konzentriert. Es ermöglicht Ihnen, PDF-Dateien einfach zu erstellen, zu bearbeiten und zu lesen. Sie können HTML direkt in PDF-Dateien umwandeln. Diese Funktion ist besonders nützlich für die Erstellung von Berichten oder Dokumenten innerhalb Ihrer Anwendungen. IronPDF ist mit verschiedenen Versionen von .NET kompatibel, darunter Core, Framework und Standard.

Obwohl Specflow C# und IronPDF unterschiedlichen Zwecken dienen, sind sie wertvolle Werkzeuge im Werkzeugkasten eines Entwicklers. Sie können innerhalb eines Projekts wirksam kombiniert werden. Sie könnten zum Beispiel Specflow C# verwenden, um eine Funktion zu definieren und zu testen, bei der Daten abgerufen und verarbeitet werden, und dann IronPDF einsetzen, um einen Bericht auf der Grundlage der Testergebnisse zu erstellen. Dieses Specflow-Tutorial zeigt, wie diese Werkzeuge zusammenarbeiten können, um Ihren Anwendungsentwicklungsprozess zu verbessern.

Erste Schritte mit Specflow C

Einrichten von Specflow in .NET-Projekten

Um Specflow in Ihren .NET-Projekten einsetzen zu können, müssen Sie zunächst das Specflow NuGet-Paket installieren, um Ihr Test-Framework einzurichten, Feature-Dateien zu erstellen und Testszenarien zu definieren.

  1. Öffnen Sie Visual Studio.
  2. Erstellen Sie ein neues .NET-Projekt oder öffnen Sie ein bestehendes Projekt.
  3. Gehen Sie in das Menü Erweiterungen und dann auf Erweiterungen verwalten.
  4. Suchen Sie nach "Specflow". Installieren Sie die Specflow-Erweiterung.

    Specflow C# (Wie es für Entwickler funktioniert): Abbildung 1

Ein grundlegendes Code-Beispiel

Sobald Specflow eingerichtet ist, können Sie Ihre erste Feature-Datei erstellen, die sich im Feature-Ordner befinden wird. Eine Feature-Datei in Specflow umreißt die Verhaltensweisen, die Sie testen wollen, in einem lesbaren Format. Hier ein einfaches Beispiel, wie Sie eine neue Feature-Datei erstellen und Szenarien definieren:

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
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
Feature:
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'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
VB   C#

Diese Funktionsdatei beschreibt einen grundlegenden Anmeldevorgang. geben" legt den Rahmen für den Test fest. wenn" beschreibt die Handlung. mit "dann" wird das erwartete Ergebnis definiert. Sie schreiben diese Aussagen in einfachem Englisch. Dies macht den Ablauf und den Zweck des Tests leicht verständlich.

Implementierungsfunktionen von Specflow C

Schreiben von Tests mit Stufendefinitionen

In Specflow werden die Tests durch Szenarien gesteuert, die in Funktionsdateien beschrieben sind. Um diese Szenarien ausführbar zu machen, benötigen Sie Schrittdefinitionen. Schrittdefinitionen binden die Klartextschritte an C#-Code. So definieren Sie Schrittdefinitionen:

[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
    }
}
[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
    }
}
<Binding>
Public Class LoginSteps
	<Given("I am on the login page")>
	Public Sub GivenIAmOnTheLoginPage()
		' Code to navigate to the login page
	End Sub

	<[When]("I enter valid credentials")>
	Public Sub WhenIEnterValidCredentials()
		' Code to input username and password
	End Sub

	<[Then]("I should be redirected to the dashboard")>
	Public Sub ThenIShouldBeRedirectedToTheDashboard()
		' Code to verify the dashboard is displayed
	End Sub
End Class
VB   C#

Diese C#-Klasse stellt die Schritte des Anmeldeszenarios dar. Jede Methode wird mit einem Specflow-Attribut versehen, das dem Schritttyp entspricht, z. B. einem String-Schlüssel zur Identifizierung bestimmter Schritte.

Datengesteuertes Testen

Specflow unterstützt datengesteuertes Testen, indem es Ihnen erlaubt, verschiedene Testdatensätze in Ihren Szenarien zu verwenden. So können Sie Szenarien mit verschiedenen Datensätzen testen. Hier ist ein Beispiel, das eine Tabelle in einer Feature-Datei verwendet:

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
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
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

In Ihren Schrittdefinitionen können Sie auf diese Daten wie folgt zugreifen:

[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
    }
}
[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
    }
}
<[When]("I login with the following credentials:")>
Public Sub WhenILoginWithTheFollowingCredentials(ByVal table As Table)
	For Each row In table.Rows
		Dim username As String = row("Username")
		Dim password As String = row("Password")
		' Code to perform login
	Next row
End Sub
VB   C#

Integration mit Test Explorer

Specflow ist in den Test Explorer von Visual Studio integriert, wo Sie alle Tests effizient ausführen und verwalten können. Das macht die Durchführung und Verwaltung Ihrer Tests einfach. Stellen Sie sicher, dass Ihr Projekt korrekt konfiguriert ist. Ihre Tests werden in Test Explorer angezeigt, sobald Sie das Projekt erstellt haben. Sie können einzelne Tests oder alle Tests auf einmal durchführen.

Parallele Testdurchführung

Specflow unterstützt die Ausführung paralleler Tests, um die Gesamtausführungszeit zu reduzieren. Dies reduziert die Zeit, die für die Ausführung aller Tests benötigt wird. Sie müssen Ihre Datei "specflow.json" oder "AssemblyInfo.cs" so konfigurieren, dass eine parallele Ausführung möglich ist:

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

Mit dieser Konfiguration können bis zu vier Tests gleichzeitig durchgeführt werden.

Benutzerdefinierte Haken

Mit Specflow können Sie benutzerdefinierte Haken definieren. Diese Hooks können an verschiedenen Punkten des Testlebenszyklus Code ausführen. So können Sie einen Hook für die Einrichtung einer Datenbank vor der Ausführung von Tests definieren:

[BeforeTestRun]
public static void SetUpDatabase()
{
    // Code to set up database
}
[BeforeTestRun]
public static void SetUpDatabase()
{
    // Code to set up database
}
<BeforeTestRun>
Public Shared Sub SetUpDatabase()
	' Code to set up database
End Sub
VB   C#

Benutzerdefinierte Haken sind eine leistungsstarke Funktion. Sie helfen Ihnen bei der Verwaltung von Testaufbau- und -abbauverfahren.

In diesem Abschnitt wurden fünf Schlüsselfunktionen von Specflow behandelt, die Ihr Test-Framework in .NET-Projekten verbessern können. Jede Funktion wurde entwickelt, um die Flexibilität und Effizienz Ihrer Testautomatisierung zu verbessern.

Integration von Specflow C# mit IronPDF

Specflow C# (Wie es für Entwickler funktioniert): Abbildung 2

IronPDF ist eine Bibliothek für C#, die es Entwicklern ermöglicht, PDF-Dateien in .NET-Anwendungen zu erzeugen, zu bearbeiten und darzustellen. Dieses leistungsstarke Tool kann eine wertvolle Ergänzung zu Ihrem Testarsenal sein, wenn es zusammen mit Specflow, dem Behavior-Driven Development (BDD) rahmenwerk für .NET.

Durch die Integration von IronPDF können Sie das Testen von PDF-Ausgaben in Ihren Anwendungen automatisieren und sicherstellen, dass diese den erforderlichen Spezifikationen entsprechen.

Anwendungsfall der Zusammenführung von IronPDF mit Specflow C

Ein praktischer Anwendungsfall für die Kombination von IronPDF mit Specflow ist die Validierung des Inhalts und der Formatierung eines von Ihrer Anwendung generierten PDF-Berichts. So können Sie beispielsweise automatisch prüfen, ob ein Bericht die richtigen Daten enthält, das erwartete Layout einhält und innerhalb der festgelegten Anforderungen zugänglich ist. Diese Integration erweist sich als besonders nützlich in Szenarien, in denen eine genaue Dokumentation, z. B. in Form von Rechnungen oder Compliance-Berichten, von entscheidender Bedeutung ist.

Stellen Sie sicher, dass Sie IronPDF installiert haben. Sie können es über die NuGet-Paketkonsole installieren:

Install-Package IronPdf

Specflow C# (Wie es für Entwickler funktioniert): Abbildung 3

Codebeispiel für den Anwendungsfall

Hier ist ein komplettes Codebeispiel, das zeigt, wie man eine SpecFlow-Schrittdefinition zum Testen von PDF-Inhalten mit IronPDF einrichtet. In diesem Beispiel wird davon ausgegangen, dass Sie ein von Ihrer Anwendung generiertes PDF-Dokument testen, das einen bestimmten Text enthalten soll:

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)
    {
        var textContent = _pdfDocument.ExtractAllText();
        if (!textContent.Contains(expectedText))
        {
            throw new Exception("PDF content does not contain the expected text.");
        }
    }
}
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)
    {
        var textContent = _pdfDocument.ExtractAllText();
        if (!textContent.Contains(expectedText))
        {
            throw new Exception("PDF content does not contain the expected text.");
        }
    }
}
Imports IronPdf
Imports TechTalk.SpecFlow

<Binding>
Public Class PdfContentSteps
'INSTANT VB WARNING: Nullable reference types have no equivalent in VB:
'ORIGINAL LINE: private string? _pdfPath;
	Private _pdfPath As String
	Private _pdfDocument? As PdfDocument

	<Given("a PDF file generated at '(.*)'")>
	Public Sub GivenAPDFFileGeneratedAt(ByVal pdfPath As String)
		_pdfPath = pdfPath
		_pdfDocument = New PdfDocument(_pdfPath)
	End Sub

	<[Then]("the PDF should contain the text '(.*)'")>
	Public Sub ThenThePDFShouldContainTheText(ByVal expectedText As String)
		Dim textContent = _pdfDocument.ExtractAllText()
		If Not textContent.Contains(expectedText) Then
			Throw New Exception("PDF content does not contain the expected text.")
		End If
	End Sub
End Class
VB   C#

In diesem Code definieren wir einen Specflow-Schritt, der zunächst eine PDF-Datei von einem angegebenen Pfad lädt und dann überprüft, ob diese PDF-Datei den erwarteten Text enthält. Die Klasse "IronPDF.PdfDocument" wird zum Laden und Verarbeiten der PDF-Datei verwendet. Mit dieser Einrichtung können Sie die PDF-Validierung in Ihre automatisierten Tests integrieren, wodurch Fehler leichter erkannt werden können.

Schlussfolgerung

Specflow C# (Wie es für Entwickler funktioniert): Abbildung 4

Zusammenfassend lässt sich sagen, dass die Kombination von Specflow C# und IronPDF die Möglichkeiten Ihrer .NET-Projekte erweitert, insbesondere beim Umgang mit PDF-Dokumenten. Specflow zeichnet sich durch die Definition und Ausführung von detaillierten Testszenarien in einfacher Sprache aus.

IronPDF ergänzt dies, indem es robuste PDF-Bearbeitungsfunktionen bietet. Durch die Integration dieser beiden leistungsstarken Tools können Sie Ihren Testprozess rationalisieren. Wenn Sie diese Funktionen ausprobieren möchten, bietet IronPDF eine kostenlose Testversion an.

< PREVIOUS
Octokit .NET (Wie es für Entwickler funktioniert)
NÄCHSTES >
Dotnetopenauth .NET Core (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >