using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Das JUnit-Framework ist ein weit verbreitetes Unit-Test-Framework für Java-Anwendungen. Es bietet eine einfache, elegante Möglichkeit, wiederholbare Tests zu schreiben und auszuführen. Mit JUnit Java können Entwickler sicherstellen, dass ihr Code wie erwartet funktioniert, indem sie Unit-Tests schreiben, die verschiedene Aspekte ihrer Software überprüfen. Darüber hinaus können Entwickler auch Testklassen schreiben, um Testfälle zu organisieren, und Test Runner verwenden, um Tests auszuführen und Feedback zu erhalten. Unit-Test-Frameworks helfen nicht nur bei der Identifizierung von Fehlern, sondern fördern auch ein besseres Design und die Wartbarkeit.
In diesem Artikel werden wir die Ausführung von Junit-Java-Tests besprechen und verschiedene Techniken dafür kennenlernen. Wir werden auch einen Testfall für die PDF-Erstellung mit erstellenIronPDF für Java.
Geschichte und Entwicklung von JUnit
Das JUnit-Testframework wurde von Kent Beck und Erich Gamma entwickelt, zwei führenden Persönlichkeiten in der Softwareentwicklungs-Community. Seit seiner Einführung in den späten 1990er Jahren hat JUnit mehrere Iterationen durchlaufen, von denen jede mehr Funktionalität hinzugefügt und die Benutzerfreundlichkeit verbessert hat. Die aktuelle stabile Version, JUnit 5, auch bekannt als JUnit Jupiter, führt mehrere Verbesserungen gegenüber ihren Vorgängern ein, wodurch sie robuster und flexibler wird.
Hauptmerkmale von JUnit
Anmerkungen: JUnit verwendet Anmerkungen, um Tests zu definieren und zu konfigurieren. Häufige Anmerkungen umfassen:
@Test: Markiert eine Methode als Testmethode.
@BeforeEach: Wird vor jedem Test ausgeführt.
@AfterEach: Wird nach jedem Test ausgeführt.
@BeforeAll: Wird einmal vor allen Tests ausgeführt.
@AfterAll: Wird einmal nach allen Tests ausgeführt.
Assertions: Assertions werden verwendet, um zu überprüfen, ob die Testergebnisse den erwarteten Ergebnissen entsprechen. Einige gängige Behauptungen umfassen:
assertEquals(erwartet, tatsächlich): Überprüft, ob zwei Werte gleich sind.
assertTrue(Bedingung)Überprüft, ob eine Bedingung wahr ist.
assertFalse(Bedingung): Überprüft, ob eine Bedingung falsch ist.
assertNull(objekt)Überprüft, ob ein Objekt null ist.
assertNotNull(objekt): Überprüft, ob ein Objekt nicht null ist.
Parametrisierte Tests: JUnit unterstützt parametrisierte Tests, sodass derselbe Test mit unterschiedlichen Parametern ausgeführt werden kann, wodurch Tests effizienter durchgeführt werden.
Testsuiten: Tests können in Testsuiten gruppiert werden, um mehrere Tests gemeinsam auszuführen.
Ausnahmetests: JUnit kann testen, ob eine Methode die erwarteten Ausnahmen auslöst.
Integration mit Build-Tools: JUnit integriert sich nahtlos mit weit verbreiteten Build-Tools wie Maven. Dies ermöglicht es Ihnen, Tests und Testcode während des Build-Prozesses automatisch auszuführen und die Entwickler zu informieren, wenn ein Test während des Build-Prozesses fehlschlägt.
Integration mit Build-Tools
JUnit integriert sich nahtlos mit weit verbreiteten Build-Tools wie Maven. Dadurch können Tests während des Build-Prozesses automatisch ausgeführt werden.
Um JUnit mit Maven zu verwenden, fügen Sie die folgende Abhängigkeit zu Ihrer pom.xml-Datei hinzu:
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<dependencies> <dependency> <groupId> org.junit.jupiter</groupId> <artifactId> junit-jupiter-api</artifactId> <version>5.8.1</version> <scope> test</scope> </dependency> <dependency> <groupId> org.junit.jupiter</groupId> <artifactId> junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope> test</scope> </dependency> </dependencies>
Erstellen Ihres ersten JUnit-Tests
Bevor wir in komplexere Beispiele eintauchen, beginnen wir mit einem einfachen Unit-Testfall. Wir werden einen Test für eine grundlegende Taschenrechner-Klasse schreiben.
Calculator-Klasse
// Calculator.java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
// Calculator.java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
' Calculator.java
Public Class Calculator
Public Function add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
Public Function subtract(ByVal a As Integer, ByVal b As Integer) As Integer
Return a - b
End Function
End Class
Unittestklasse
// CalculatorTest.java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3));
}
@Test
public void testSubtract() {
Calculator calculator = new Calculator();
assertEquals(1, calculator.subtract(3, 2));
}
}
// CalculatorTest.java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3));
}
@Test
public void testSubtract() {
Calculator calculator = new Calculator();
assertEquals(1, calculator.subtract(3, 2));
}
}
' CalculatorTest.java
Private org As import
Private Shared As import
Public Class CalculatorTest
Test Public Sub testAdd()
Dim calculator As New Calculator()
assertEquals(5, calculator.add(2, 3))
End Sub
Test Public Sub testSubtract()
Dim calculator As New Calculator()
assertEquals(1, calculator.subtract(3, 2))
End Sub
End Class
Das Beispiel CalculatorTest enthält zwei Testmethoden: eine zum Testen der Addition: testAdd und eine zum Testen der Subtraktion: testSubtract. Jede Methode erstellt eine Instanz der Calculator-Klasse und verwendet Assertions, um die Korrektheit der Methoden zum Addieren und Subtrahieren zu überprüfen.
Ausgabe
Erweiterte JUnit-Funktionen
Parametrisierte Tests
Parametrisierte Tests ermöglichen es Ihnen, denselben Test mit verschiedenen Parametersätzen auszuführen. Dies ist nützlich, um Methoden mit einer großen Bandbreite an Eingaben zu testen.
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.*;
public class CalculatorParameterizedTest {
@ParameterizedTest
@CsvSource({
"1, 1, 2",
"2, 3, 5",
"10, 20, 30"
})
public void testAdd(int a, int b, int expected) {
Calculator calculator = new Calculator();
assertEquals(expected, calculator.add(a, b));
}
}
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.*;
public class CalculatorParameterizedTest {
@ParameterizedTest
@CsvSource({
"1, 1, 2",
"2, 3, 5",
"10, 20, 30"
})
public void testAdd(int a, int b, int expected) {
Calculator calculator = new Calculator();
assertEquals(expected, calculator.add(a, b));
}
}
Private org As import
Private org As import
Private Shared As import
Public Class CalculatorParameterizedTest
ParameterizedTest CsvSource({ "1, 1, 2", "2, 3, 5", "10, 20, 30" }) Public Sub testAdd(ByVal a As Integer, ByVal b As Integer, ByVal expected As Integer)
Dim calculator As New Calculator()
assertEquals(expected, calculator.add(a, b))
End Sub
End Class
In diesem Beispiel wird die Methode testAdd dreimal mit unterschiedlichen Eingabe-Sets ausgeführt, wie durch die CsvSource angegeben.
Ausnahmeteststellung
Manchmal müssen Sie überprüfen, ob eine Methode eine erwartete Ausnahme auslöst.
Fügen Sie die folgende Methode zu Ihrer Rechnerklasse hinzu.
public float divide(int a, int b) {
return a / b;
}
public float divide(int a, int b) {
return a / b;
}
Public Function divide(ByVal a As Integer, ByVal b As Integer) As Single
Return a \ b
End Function
Testklasse:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorExceptionTest {
@Test
public void testDivisionByZero() {
Calculator calculator = new Calculator();
assertThrows(ArithmeticException.class, () -> calculator.divide(1, 0));
}
}
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorExceptionTest {
@Test
public void testDivisionByZero() {
Calculator calculator = new Calculator();
assertThrows(ArithmeticException.class, () -> calculator.divide(1, 0));
}
}
Private org As import
Private Shared As import
Friend Class CalculatorExceptionTest
Test Public Sub testDivisionByZero()
Dim calculator As New Calculator()
assertThrows(ArithmeticException.class, () -> calculator.divide(1, 0))
End Sub
End Class
Ausgabe
Integration von IronPDF mit JUnit in Java
IronPDFist eine leistungsstarke Bibliothek zur Erstellung von PDF-Dokumenten in Java-Anwendungen. Die Integration von IronPDF mit JUnit ermöglicht die Automatisierung der Tests der PDF-Generierungsfunktion, um sicherzustellen, dass Ihre Dokumente genau erstellt werden und den gewünschten Spezifikationen entsprechen.
Um IronPDF mit JUnit zu integrieren, müssen Sie zunächst die IronPDF-Bibliothek in Ihre Projektabhängigkeiten aufnehmen.
<dependencies>
<!--Adds IronPDF Java. Use the latest version in the version tag.-->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>20xx.xx.xxxx</version>
</dependency>
<!--Adds the slf4j logger which IronPDF Java uses.-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
<dependencies>
<!--Adds IronPDF Java. Use the latest version in the version tag.-->
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>20xx.xx.xxxx</version>
</dependency>
<!--Adds the slf4j logger which IronPDF Java uses.-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<dependencies> <!--Adds IronPDF Java.Use the latest version in the version tag.-- > <dependency> <groupId> com.ironsoftware</groupId> <artifactId> ironpdf</artifactId> <version>20xx.xx.xxxx</version> </dependency> <!--Adds the slf4j logger which IronPDF Java uses.-- > <dependency> <groupId> org.slf4j</groupId> <artifactId> slf4j-simple</artifactId> <version>2.0.3</version> </dependency> </dependencies>
Sobald dies abgeschlossen ist, können Sie Testfälle schreiben, um die Logik der PDF-Erstellung mit den APIs von IronPDF zu validieren. Hier ist ein Beispiel, wie Sie JUnit verwenden können, um die PDF-Erstellung mit IronPDF zu testen:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import com.ironsoftware.ironpdf.*;
import java.io.File;
import java.io.IOException;
class PdfGenerationTest {
@Test
public void testPdfGeneration() throws IOException {
// Define HTML content
String htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Convert HTML to PDF
PdfDocument pdfDocument = PdfDocument.renderHtmlAsPdf(htmlContent);
// Save PDF to file
pdfDocument.saveAs("output.pdf");
// Assert PDF generation
assertTrue(new File("output.pdf").exists());
}
}
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import com.ironsoftware.ironpdf.*;
import java.io.File;
import java.io.IOException;
class PdfGenerationTest {
@Test
public void testPdfGeneration() throws IOException {
// Define HTML content
String htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Convert HTML to PDF
PdfDocument pdfDocument = PdfDocument.renderHtmlAsPdf(htmlContent);
// Save PDF to file
pdfDocument.saveAs("output.pdf");
// Assert PDF generation
assertTrue(new File("output.pdf").exists());
}
}
Private org As import
Private Shared As import
Private com As import
Private java As import
Private java As import
Friend Class PdfGenerationTest
Test Public Sub testPdfGeneration()
' Define HTML content
Dim htmlContent As String = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
' Convert HTML to PDF
Dim pdfDocument As PdfDocument = PdfDocument.renderHtmlAsPdf(htmlContent)
' Save PDF to file
pdfDocument.saveAs("output.pdf")
' Assert PDF generation
assertTrue((New File("output.pdf")).exists())
End Sub
End Class
In diesem Beispiel erstellen wir einen Testfall testPdfGeneration.()das IronPDF verwendet, um HTML-Inhalte in ein PDF-Dokument zu konvertieren. Der Test überprüft dann, ob die PDF-Datei erfolgreich generiert wurde, indem er ihre Existenz im Dateisystem kontrolliert.
Schlussfolgerung
JUnit ist ein vielseitiges Test-Framework für Java, das den Prozess des Schreibens und Ausführens automatisierter Tests vereinfacht. Durch die Nutzung von Funktionen wie parametrisierten Tests, Ausnahmebehandlung und Annotationen können Entwickler die Zuverlässigkeit und Robustheit ihres Codebestands gewährleisten.
Integration vonIronPDFMit JUnit ermöglicht umfassende Tests der PDF-Generierungsfunktionalität innerhalb von Java-Anwendungen und stellt sicher, dass die erstellten Dokumente den Qualitätsstandards entsprechen und den Spezifikationen gerecht werden. Indem die Leistungsfähigkeit von JUnit und IronPDF kombiniert wird, können Entwickler den Testprozess optimieren und hochwertige Software mit Vertrauen liefern.
Um mehr darüber zu erfahren, wie HTML-Strings als PDF gerendert werden, besuchen Sie folgendes:link.
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.
< PREVIOUS Socket io .NET (Wie es für Entwickler funktioniert)
NÄCHSTES > Microsoft.Extensions .DependencyInjection .NET 9 (Arbeiten mit PDF)