Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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. DieseSpecflow und IronPDF Integration Tutorial zeigt, wie diese Tools zusammenarbeiten können, um Ihren Anwendungsentwicklungsprozess zu verbessern.
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.
Öffnen Sie Visual Studio.
Erstellen Sie ein neues .NET-Projekt oder öffnen Sie ein bestehendes Projekt.
Gehen Sie in das Menü Erweiterungen und dann auf Erweiterungen verwalten.
Suchen Sie nach "Specflow". Installieren Sie die Specflow-Erweiterung.
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
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.
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
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.
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
Scenario:
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'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
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
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.
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.
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
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.
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.
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
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
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.
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 mit diesen Funktionen experimentieren möchten,ironPDF kostenlos testen.
9 .NET API-Produkte für Ihre Bürodokumente