{"id":8752,"date":"2022-05-20T07:50:40","date_gmt":"2022-05-20T07:50:40","guid":{"rendered":"https:\/\/digitalgateamg.com\/?p=8752"},"modified":"2022-12-07T14:18:37","modified_gmt":"2022-12-07T14:18:37","slug":"software-testing","status":"publish","type":"post","link":"https:\/\/digitalgateamg.com\/de\/blog\/2022\/05\/20\/software-testing\/","title":{"rendered":"Software-Tests"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8752\" class=\"elementor elementor-8752\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bb547e8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bb547e8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c869bf3\" data-id=\"c869bf3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e572ef4 elementor-widget elementor-widget-text-editor\" data-id=\"e572ef4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tDie Untersuchung der Artefakte und des Verhaltens der zu testenden Software wird als Softwaretest bezeichnet. Au\u00dferdem wird ermittelt, ob die tats\u00e4chlichen Ergebnisse mit den vorhergesagten \u00fcbereinstimmen und es hilft bei der Erkennung von Fehlern, fehlenden Anforderungen oder L\u00fccken.\nDer letzte Schritt vor der Markteinf\u00fchrung eines Produkts ist das Testen. Zu diesem Prozess geh\u00f6ren die Untersuchung, die Analyse und die Bewertung vieler Aspekte eines Produkts.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-df51cb7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"df51cb7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-90b35d6\" data-id=\"90b35d6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a54bd7b elementor-widget elementor-widget-spacer\" data-id=\"a54bd7b\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8df87fc elementor-widget elementor-widget-heading\" data-id=\"8df87fc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Die Bedeutung von Softwaretests\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b86b11 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b86b11\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7c73f8a\" data-id=\"7c73f8a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60b2e0c elementor-widget elementor-widget-text-editor\" data-id=\"60b2e0c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Programmtests sind von entscheidender Bedeutung, da sie es Ihnen erm\u00f6glichen, etwaige Fehler in der Software fr\u00fchzeitig zu erkennen und zu korrigieren, bevor Sie das Endprodukt ausliefern. Ein gut getestetes Softwareprodukt bietet Zuverl\u00e4ssigkeit, Sicherheit und hervorragende Leistung, das spart Zeit und Geld und verbessert die Kundenzufriedenheit.<\/p><p>Softwaretests sind aus den folgenden Gr\u00fcnden notwendig:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c19c9d0 elementor-widget elementor-widget-heading\" data-id=\"c19c9d0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">1. Sicherheit <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b32ab79 elementor-widget elementor-widget-text-editor\" data-id=\"b32ab79\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Da ein bestimmtes Produkt getestet wird, k\u00f6nnen die Benutzer sicher sein, dass sie ein zuverl\u00e4ssiges Produkt erhalten werden. Auch die pers\u00f6nlichen Daten des Nutzers k\u00f6nnen sicher sein. Mithilfe von Softwaretests k\u00f6nnen die Nutzer Produkte erhalten, die frei von Schwachstellen sind.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b2304a elementor-widget elementor-widget-heading\" data-id=\"2b2304a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">2. Kosteng\u00fcnstig<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6605ad7 elementor-widget elementor-widget-text-editor\" data-id=\"6605ad7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"translation-block\">Softwaretests haben viele Vorteile. Einer der wichtigsten Gr\u00fcnde, warum sich Unternehmen f\u00fcr Softwaretestdienste entscheiden, ist die Kosteneffizienz des Projekts.<br>Das Testen von Software besteht aus mehreren Initiativen. Wenn Sie einen Fehler in einem fr\u00fchen Stadium des Entwicklungsprozesses entdecken, sind die Kosten f\u00fcr seine Behebung geringer. Daher m\u00fcssen Sie die Pr\u00fcfung so schnell wie m\u00f6glich abschlie\u00dfen. Wenn Sie Qualit\u00e4tsanalysten oder Tester f\u00fcr Projekte engagieren, die \u00fcber viel Erfahrung verf\u00fcgen und eine technische Ausbildung absolviert haben, investieren Sie und das Projekt wird davon profitieren.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-901e9f9 elementor-widget elementor-widget-heading\" data-id=\"901e9f9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">3. Qualit\u00e4t des Produkts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a15735a elementor-widget elementor-widget-text-editor\" data-id=\"a15735a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das Testen von Software ist eine Kunst, die dazu beitr\u00e4gt, dass sich ein Unternehmen auf dem Markt einen Namen macht, indem es dem Kunden ein qualitativ hochwertiges Produkt gem\u00e4\u00df den Anforderungspapieren liefert.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a1097b elementor-widget elementor-widget-heading\" data-id=\"4a1097b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">4. Zufriedenheit des Kunden<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60830e8 elementor-widget elementor-widget-text-editor\" data-id=\"60830e8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Alle das f\u00fchrt zu einem zufriedenen Kunden! Als Kunden erwarten wir alle Systemstabilit\u00e4t. Wenn Sie w\u00e4hrend des Lebenszyklus der Entwicklung testen, k\u00f6nnen Sie sehen, wie gut das Programm konzipiert wurde. Dies erh\u00f6ht das Vertrauen der Kunden.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab43d83 elementor-widget elementor-widget-heading\" data-id=\"ab43d83\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">5. Verbesserungen des Entwicklungsprozesses<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d17dc19 elementor-widget elementor-widget-text-editor\" data-id=\"d17dc19\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Mithilfe der Qualit\u00e4tssicherung k\u00f6nnen Sie eine Reihe von Szenarien und Fehlern ausfindig machen. Sie k\u00f6nnen sie dazu verwenden, um das Problem zu reproduzieren.<\/p><p>Es ist ganz einfach und die Entwickler m\u00fcssen das Problem so schnell wie m\u00f6glich beheben. Dar\u00fcber hinaus sollten Softwaretester mit dem Entwicklungsteam zusammenarbeiten, das tr\u00e4gt zur Beschleunigung des Entwicklungsprozesses bei.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca23ea6 elementor-widget elementor-widget-heading\" data-id=\"ca23ea6\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">6. Das Hinzuf\u00fcgen neuer Funktionen ist einfach<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89ae265 elementor-widget elementor-widget-text-editor\" data-id=\"89ae265\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00c4nderungen sind umso schwieriger, je st\u00e4rker integriert und je \u00e4lter der Code ist. Tests helfen Entwicklern Verkalkungen zu vermeiden, indem sie ihnen die M\u00f6glichkeit geben, neue Funktionen einzubauen. Als neuer Entwickler kann es schwierig sein, \u00e4ltere Abschnitte Ihrer Codebasis zu \u00e4ndern, aber mit Hilfe von Tests k\u00f6nnen Sie feststellen, ob Sie etwas Wichtiges kaputt gemacht haben. So kann sich Ihr Programm auf dem Markt abheben.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-42224de elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"42224de\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6437c64\" data-id=\"6437c64\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-57bd12e elementor-widget elementor-widget-spacer\" data-id=\"57bd12e\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2309f02 elementor-widget elementor-widget-heading\" data-id=\"2309f02\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Kategorien von Softwaretests\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-145443e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"145443e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d4a1a5a\" data-id=\"d4a1a5a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fa2d447 elementor-widget elementor-widget-text-editor\" data-id=\"fa2d447\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Es gibt eine Vielzahl von Softwaretests, jeder mit seinen eigenen Zielen und Strategien:<\/p><ul><li style=\"list-style-type: none;\"><ul><li class=\"translation-block\"><strong>Benutzerfreundlichkeitstests:<\/strong> \u00dcberpr\u00fcfung der F\u00e4higkeit eines Kunden, eine Aufgabe mit einem System oder einer Online-Anwendung auszuf\u00fchren.<\/li><li class=\"translation-block\"><strong>Abnahmetests:<\/strong>  Pr\u00fcfung, ob das Softwaresystem die Anforderungen erf\u00fcllt.<\/li><li class=\"translation-block\"><strong>Integrationstests:<\/strong> In dieser Phase des Softwaretests werden einzelne Einheiten\/Komponenten zusammengef\u00fchrt und als Gruppe getestet.Ziel dieser Testebene ist es, Fehler in der Art und Weise zu finden, wie die integrierten Einheiten zusammenwirken. Bei Integrationstests werden Testtreiber und Testst\u00fcmpfe eingesetzt.<\/li><li class=\"translation-block\"><strong>Funktionstests:<\/strong> Sie \u00fcberpr\u00fcfen, ob das Softwaresystem die funktionalen Anforderungen und Spezifikationen erf\u00fcllt. Sie k\u00f6nnen damit \u00fcberpr\u00fcfen, ob die Ausgabe eines Softwareprogramms die funktionalen Anforderungen erf\u00fcllt, indem Sie eine akzeptable Eingabe machen.<\/li><li class=\"translation-block\"><strong>Leistungstests:<\/strong> Leistungstests sind eine Art von nicht-funktionalen Softwaretests, bei denen die Stabilit\u00e4t, Geschwindigkeit, Skalierbarkeit und Reaktionsf\u00e4higkeit einer Anwendung unter verschiedenen Arbeitsbelastungen untersucht wird.<\/li><li class=\"translation-block\"><strong>Regressionstests:<\/strong> Bei dieser Art von Softwaretests wird sichergestellt, dass eine Anwendung nach Code\u00e4nderungen, Aktualisierungen oder Upgrades weiterhin wie implementiert funktioniert.<\/li><li class=\"translation-block\"><strong>Stresstest:<\/strong> Hierbei wird getestet, ob das System einer bestimmten Belastung standhalten kann, bevor es abst\u00fcrzt. Diese Art von Test ist ein nicht-funktionaler Test.<\/li><li class=\"translation-block\"><strong>Unit-Test:<\/strong> Testen einzelner Module auf Fehler. Hier geht es um die Genauigkeit der Funktionalit\u00e4t der unabh\u00e4ngigen Module. Der Hauptzweck dieser Testphase besteht darin, jede Komponente des Systems zu isolieren, damit Fehler identifiziert, analysiert und korrigiert werden k\u00f6nnen.<\/li><li class=\"translation-block\"><strong>Nicht-funktionales Testen:<\/strong> Nicht-funktionales Testen ist eine Art des Testens von Software, die nicht-funktionale Aspekte der Software wie Zuverl\u00e4ssigkeit, Lasttests, Leistung und Verantwortlichkeit \u00fcberpr\u00fcft. Der Hauptzweck des nicht-funktionalen Testens besteht darin, die Leserate des Softwaresystems anhand von nicht-funktionalen Kriterien zu bestimmen.<\/li><\/ul><\/li><\/ul><p class=\"translation-block\">In diesem Artikel konzentrieren wir uns mehr auf <strong>Unit-Tests<\/strong> konzentrieren.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7ccb59d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7ccb59d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-977b5c4\" data-id=\"977b5c4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ca5b764 elementor-widget elementor-widget-spacer\" data-id=\"ca5b764\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86cdc7b elementor-widget elementor-widget-heading\" data-id=\"86cdc7b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wir verwenden die folgenden Tools f\u00fcr den Unit-Test der Software:\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-390e9ab elementor-widget elementor-widget-heading\" data-id=\"390e9ab\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Google Test (GTest)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20bf383 elementor-widget elementor-widget-text-editor\" data-id=\"20bf383\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Es basiert auf der xUnit-Architektur.<\/li><li>Es ist eine Sammlung von \u201eFrameworks\" f\u00fcr die Entwicklung und Automatisierung von Testf\u00e4llen.<\/li><li>Es ist eine Bibliothek zum Schreiben von C++-Tests.<\/li><\/ul><p>Der Zweck der Verwendung eines Google Tests:<\/p><ul><li>Mit Google Test k\u00f6nnen wir bessere C++-Tests entwickeln.<\/li><li>Es trennt die Tests, indem es jeden Test an einem bestimmten Element ausf\u00fchrt, wodurch sie unabh\u00e4ngig und wiederholbar werden.<\/li><li>Google Test ist portabel und wiederverwendbar, da es auf einer Vielzahl von Betriebssystemen (Linux, Windows und Mac) und Compilern l\u00e4uft.<\/li><li>Wenn Tests fehlschlagen, sollten so viele Informationen wie m\u00f6glich \u00fcber das Problem bereitgestellt werden.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94e8a26 elementor-widget elementor-widget-heading\" data-id=\"94e8a26\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Google Mock (GMock)<br><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d3be8c elementor-widget elementor-widget-text-editor\" data-id=\"0d3be8c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Es basiert auf der xUnit-Architektur.<\/li><li>Es ist eine Sammlung von \u201eFrameworks\" f\u00fcr die Entwicklung und Automatisierung von Testf\u00e4llen.<\/li><li>Es ist eine Bibliothek zum Schreiben von C++-Tests.<\/li><\/ul><p>Der Zweck der Verwendung eines Google Tests:<\/p><ul><li>Mit Google Test k\u00f6nnen wir bessere C++-Tests entwickeln.<\/li><li>Es trennt die Tests, indem es jeden Test an einem bestimmten Element ausf\u00fchrt, wodurch sie unabh\u00e4ngig und wiederholbar werden.<\/li><li>Google Test ist portabel und wiederverwendbar, da es auf einer Vielzahl von Betriebssystemen (Linux, Windows und Mac) und Compilern l\u00e4uft.<\/li><li>Wenn Tests fehlschlagen, sollten so viele Informationen wie m\u00f6glich \u00fcber das Problem bereitgestellt werden.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-57436b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"57436b1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d06f14b\" data-id=\"d06f14b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-db351ab elementor-widget elementor-widget-spacer\" data-id=\"db351ab\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d45aac elementor-widget elementor-widget-heading\" data-id=\"6d45aac\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00dcben mit Google Test und Google Mock\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a1b3cc2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a1b3cc2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5a2e132\" data-id=\"5a2e132\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-70cee96 elementor-widget elementor-widget-text-editor\" data-id=\"70cee96\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Technologie Google Test und Google Mock erfordern die Verwendung eines Build-Systems wie CMake, Bazel, Meson oder eines anderen Build-Systems.<\/p><h5>Schritte zur Einrichtung von Google Test und Google Mock unter Verwendung des Meson Build Systems:<\/h5><p class=\"translation-block\"><strong>Projekt-Setup mit Meson:<\/strong> Hierf\u00fcr ben\u00f6tigen wir eine Wrap-Datei mit der notwendigen Konfiguration. F\u00fcr weitere Details \u00fcber den Inhalt einer solchen Datei laden wir Sie ein, die offizielle Dokumentation des Mesonenbausystems https:\/\/mesonbuild.com\/Wrap-dependency-system-manual.html zu lesen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6bb333 elementor-widget elementor-widget-code-highlight\" data-id=\"c6bb333\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>[wrap-file]\r\ndirectory = googletest-release-1.11.0\r\nsource_url = https:\/\/github.com\/google\/googletest\/archive\/release-1.11.0.zip\r\nsource_filename = gtest-1.11.0.zip\r\nsource_hash = 353571c2440176ded91c2de6d6cd88ddd41401d14692ec1f99e35d013feda55a\r\npatch_filename = gtest_1.11.0-1_patch.zip\r\npatch_url = https:\/\/wrapdb.mesonbuild.com\/v2\/gtest_1.11.0-1\/get_patch\r\npatch_hash = d38c39184384608b08419be52aed1d0f9d9d1b5ed71c0c35e51cccbdddab7084\r\n \r\n[provide]\r\ngtest = gtest_dep\r\ngtest_main = gtest_main_dep\r\ngmock = gmock_dep\r\ngmock_main = gmock_main_dep\r\n                 \r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ae767d elementor-widget elementor-widget-text-editor\" data-id=\"1ae767d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Sobald die Konfiguration f\u00fcr diese Wrap-Datei fertig ist, k\u00f6nnen wir sie in unser Projekt herunterladen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee84f6d elementor-widget elementor-widget-code-highlight\" data-id=\"ee84f6d\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp># gtest_proj is a variable with which we can download Google Test and Google Mock\r\n# It will be downloaded to the subdirectory where our wrap file is located.\r\n  gtest_proj = subproject('gtest')\r\n    \r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35c4316 elementor-widget elementor-widget-text-editor\" data-id=\"35c4316\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><br \/>-&gt; Erstellen der ausf\u00fchrbaren Datei:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fa4d55 elementor-widget elementor-widget-code-highlight\" data-id=\"5fa4d55\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-html\">\n\t\t\t\t<code readonly=\"true\" class=\"language-html\">\n\t\t\t\t\t<xmp>e = executable('logic-tests',\r\n                sources: src, \r\n                dependencies: [gtest_dep, gmock_dep],  dupa :\r\n                link_with: [gtest_lib, gmock_lib]\r\n              )\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11b38c3 elementor-widget elementor-widget-text-editor\" data-id=\"11b38c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Die folgenden Daten werden in die ausf\u00fchrbare Datei aufgenommen:<\/p><ul><li>sein Name zwischen ' '<\/li><li>den Quelldateien, die wir testen wollen.<\/li><\/ul><div>\u00a0<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff75461 elementor-widget elementor-widget-code-highlight\" data-id=\"ff75461\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>src = [\r\n            'Parallelepiped_test.cpp',\r\n            'Parallelepiped.cpp',\r\n      ]\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4beca4b elementor-widget elementor-widget-text-editor\" data-id=\"4beca4b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>\u00a0Zugang zu Bibliotheken und Nutzung von Abh\u00e4ngigkeiten<\/li><\/ul><div>\u00a0<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-336fb4e elementor-widget elementor-widget-code-highlight\" data-id=\"336fb4e\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>  # gtest_dep => creating dependency for GTest\r\n  gtest_dep = gtest_proj.get_variable('gtest_dep')\r\n\r\n\r\n  # gmock_dep => creating dependency for GTest\r\n  gmock_dep = gtest_proj.get_variable('gmock_dep')\r\n\r\n\r\n  # obtaining the libraries\r\n  gtest_lib = static_library('gtest', install : true)\r\n  gmock_lib = static_library('gmock', install: true)\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f576865 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f576865\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4d49444\" data-id=\"4d49444\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ef487ca elementor-widget elementor-widget-spacer\" data-id=\"ef487ca\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9d6ea1 elementor-widget elementor-widget-heading\" data-id=\"a9d6ea1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vorbereitung auf das Pr\u00fcfverfahren:\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6180e9e elementor-widget elementor-widget-text-editor\" data-id=\"6180e9e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Schreiben der Hauptfunktion, die dem Test entspricht:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0adcfc2 elementor-widget elementor-widget-code-highlight\" data-id=\"0adcfc2\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>int main(int argc, char **argv)\r\n{\r\n    testing::InitGoogleTest(&argc, argv);\r\n\r\n\r\n    return RUN_ALL_TESTS();\r\n}\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca3345c elementor-widget elementor-widget-text-editor\" data-id=\"ca3345c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Mock Class-Vorbereitung<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7737de3 elementor-widget elementor-widget-code-highlight\" data-id=\"7737de3\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>class MockParallelepiped\r\n{\r\n    public:\r\n        MOCK_METHOD(int, ParallelepipedArea, (int , int ));\r\n};\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e4f97dc elementor-widget elementor-widget-text-editor\" data-id=\"e4f97dc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h6><strong>Mocks in Tests einbinden:<\/strong><\/h6>\n\n<ul>\n \t<li>Importieren Sie die Google Mock-Namen aus dem Testing-Namensraum, damit Sie sie ohne Einschr\u00e4nkungen verwenden k\u00f6nnen. Sie m\u00fcssen dies nur einmal pro Code tun. Denken Sie daran, dass Namensr\u00e4ume eine gute Idee sind und Ihrer Gesundheit zugute kommen).<\/li>\n\n \t<li>Erfinden Sie einige fiktive Dinge.<\/li>\n\n \t<li>Definieren Sie Ihre Erwartungen an sie. Zum Beispiel: Wie oft werden Sie eine Funktion aufrufen? Welche Argumente verwenden Sie? Was soll es tun und so weiter).<\/li>\n\n \t<li>\u00a0F\u00fchren Sie einen Code aus, der die Mocks verwendet; optional k\u00f6nnen Sie Google Test Assertions verwenden, um das Ergebnis zu \u00fcberpr\u00fcfen. Wenn Sie eine gef\u00e4lschte Methode mehr als einmal oder mit falschen Parametern aufrufen, erhalten Sie sofort eine Fehlermeldung.<\/li>\n\n \t<li>Wenn ein Mock zerst\u00f6rt wird, pr\u00fcft Google Mock, ob alle mit ihm verbundenen Erwartungen erf\u00fcllt sind.<\/li>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6f9bfa6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6f9bfa6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e3ca9e5\" data-id=\"e3ca9e5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7368a1f elementor-widget elementor-widget-spacer\" data-id=\"7368a1f\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba8eec5 elementor-widget elementor-widget-heading\" data-id=\"ba8eec5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00dcben mit Google Test und Google Mock\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f0c8d1c elementor-widget elementor-widget-text-editor\" data-id=\"f0c8d1c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Die Funktion, die wir testen wollen:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab1a934 elementor-widget elementor-widget-code-highlight\" data-id=\"ab1a934\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>int ParallelepipedArea(int length, int width)\r\n{\r\n    int area = length * width;\r\n        \r\n    return area;\r\n}\r\n\r\n\r\nint ParallelepipedVolume(int height, int length, int width)\r\n{\r\n    int area = ParallelepipedArea(length, width);\r\n    int volume = height * area;\r\n    return volume;\r\n\r\n}\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6332fc5 elementor-widget elementor-widget-text-editor\" data-id=\"6332fc5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Unser Google Test und Google Mock Test:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0756e73 elementor-widget elementor-widget-code-highlight\" data-id=\"0756e73\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>TEST(Parallelepiped_test, ParallelepipedVolume)\r\n{\r\n    MockParallelepiped parallelepiped_mock_obj;\r\n\r\n\r\n    \/\/ values for the parameters of our functions\r\n    int length = 1;\r\n    int width = 1;\r\n    int height = 1;\r\n\r\n    ON_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width))\r\n    .WillByDefault(testing::Return(11));\r\n        \r\n    EXPECT_EQ(ParallelepipedVolume(height, length, width), 11);\r\n\r\n\r\n}\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91bccf2 elementor-widget elementor-widget-text-editor\" data-id=\"91bccf2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Der n\u00e4chste Schritt besteht darin, die Datei zu kompilieren und auszuf\u00fchren, um die Testergebnisse zu sehen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c81797f elementor-widget elementor-widget-code-highlight\" data-id=\"c81797f\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>PS C:\\Users\\siclo\\OneDrive\\Desktop\\Testare\\lovelybuild> meson compile    \r\n[2\/2] Linking target logic-tests.exe\r\nPS C:\\Users\\siclo\\OneDrive\\Desktop\\Testare\\lovelybuild> .\\logic-tests.exe\r\n[==========] Running 1 test from 1 test suite.\r\n[----------] Global test environment set-up.\r\n[----------] 1 test from Parallelepiped_test\r\n[ RUN      ] Parallelepiped_test.ParallelepipedVolume\r\n[       OK ] Parallelepiped_test.ParallelepipedVolume (0 ms)\r\n[----------] 1 test from Parallelepiped_test (17 ms total)\r\n \r\n[----------] Global test environment tear-down\r\n[==========] 1 test from 1 test suite ran. (59 ms total)\r\n[  PASSED  ] 1 test.\r\n\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15d1e35 elementor-widget elementor-widget-text-editor\" data-id=\"15d1e35\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"translation-block\">Nun, da wir das Ende des Artikels erreicht haben, wollen wir ein wenig \u00fcber unseren Test sprechen.<br>Die Funktion, die wir testen wollen, ist \u201eParallelepipedVolume\", diese Funktion gibt das Volumen zur\u00fcck. In dieser Funktion finden wir eine weitere Funktion namens \u201eParallelepipedArea\", die die Fl\u00e4che liefert.<br>Mit dem Makro \u201eON_CALL\" haben wir die Funktion \u201eParallelepipedArea\" dazu gebracht, etwas anderes zu liefern als das, was sie liefern w\u00fcrde, wenn wir die spezifischen Parameterwerte eingeben w\u00fcrden.<br>Und im Makro \u201eEXPECT_EQ\" erwarten wir, dass die Funktion \u201eParallelepipedVolume\" angesichts des obigen Beispiels das Richtige liefert.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8bf5c0c elementor-widget elementor-widget-heading\" data-id=\"8bf5c0c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dependency Injection-Beziehung:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8ef03c elementor-widget elementor-widget-text-editor\" data-id=\"d8ef03c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-family: var( --e-global-typography-secondary-font-family ), Montseraat; font-weight: var( --e-global-typography-secondary-font-weight ); background-color: var(--nv-site-bg); color: var(--nv-text-color); font-size: var(--bodyfontsize); letter-spacing: var(--bodyletterspacing); text-transform: var(--bodytexttransform);\">Dependency Injection ist eine Entwurfstechnik, bei der ein Objekt mit einem anderen Objekt, auf das es angewiesen ist, zusammengebracht wird. Diese Technik trennt die Verantwortlichkeiten f\u00fcr die Erstellung und Verwendung von Objekten, das zu losen verbundenen Anwendungen f\u00fchrt.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b789c3 elementor-widget elementor-widget-image\" data-id=\"1b789c3\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1978\" height=\"1280\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-7-1.png\" class=\"attachment-full size-full wp-image-12851\" alt=\"\" srcset=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-7-1.png 1978w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-7-1-1536x994.png 1536w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-7-1-600x388.png 600w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-7-1-1003x649.png 1003w\" sizes=\"(max-width: 1978px) 100vw, 1978px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71f1717 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71f1717\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bdf9b4e\" data-id=\"bdf9b4e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ecfdcdc elementor-widget elementor-widget-text-editor\" data-id=\"ecfdcdc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ein Entwurfsmuster ist eine L\u00f6sung, die zur Behebung eines allgemeinen Problems bei der Entwicklung von Software verwendet wird. Es ist eine Beschreibung oder Vorlage f\u00fcr die L\u00f6sung eines Problems, die auf eine Vielzahl von Szenarien angewendet werden kann.\u00a0<\/p><p>Lassen Sie uns nun veranschaulichen, wor\u00fcber wir gerade gesprochen haben:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a80b74 elementor-widget elementor-widget-code-highlight\" data-id=\"1a80b74\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>class interfaceParallelepiped\r\n{\r\n    public:\r\n        virtual int ParallelepipedArea(int length, int width) = 0;\r\n       \r\n};\r\n\r\n\r\nclass parallelepiped : public interfaceParallelepiped\r\n{\r\n    public:\r\n        int ParallelepipedArea(int length, int width)\r\n        {\r\n            int area = length * width;\r\n        \r\n            return area;\r\n        }\r\n\r\n\r\n      int ParallelepipedVolume(int height, int length, int width, interfaceParallelepiped& interface_parallelepiped_obj)\r\n\r\n        {\r\n            int area = interface_parallelepiped_obj.ParallelepipedArea(length, width);\r\n            int volume = height * area;\r\n            return volume;\r\n        }\r\n\r\n\r\n\r\n};\r\n\r\n\r\nclass mockParallelepiped\r\n{\r\n    public:\r\n        MOCK_METHOD(int, ParallelepipedArea, (int, int));\r\n};\r\n\r\nTEST(testing_files, ParallelepipedVolume) \r\n{\r\n    mockParallelepiped parallelepiped_mock_obj;\r\n    parallelepiped  parallelepiped_obj;\r\n    \r\n                 ON_CALL(parallelepiped_mock_obj,ParallelepipedArea(1,1)).WillByDefault(testing::Return(2));\r\n\r\n\r\n\r\n    EXPECT_EQ(parallelepiped_obj.ParallelepipedVolume(1, 1, 3, parallelepiped_obj), 3);\r\n}\r\n\r\n\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0749e30 elementor-widget elementor-widget-heading\" data-id=\"0749e30\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ausgangstest:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66edf8c elementor-widget elementor-widget-code-highlight\" data-id=\"66edf8c\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t<xmp>PS C:\\Users\\siclo\\OneDrive\\Desktop\\Testare\\lovelybuild> .\\logic-tests.exe\r\n[==========] Running 1 test from 1 test suite.\r\n[----------] Global test environment set-up.\r\n[----------] 1 test from testing_files\r\n[ RUN      ] testing_files.ParallelepipedVolume\r\n[       OK ] testing_files.ParallelepipedVolume (3 ms)\r\n[----------] 1 test from testing_files (17 ms total)\r\n \r\n[----------] Global test environment tear-down\r\n[==========] 1 test from 1 test suite ran. (55 ms total)\r\n[  PASSED  ] 1 test.\r\n\r\n\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6d7b66 elementor-widget elementor-widget-text-editor\" data-id=\"c6d7b66\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"translation-block\">Lassen Sie uns ein wenig \u00fcber unser Beispiel sprechen. Wir wollen dieselbe Funktion testen und Mocks auf dieselbe Funktion anwenden wie zuvor, nur dass wir es diesmal mit einem Entwurfsmuster namens Dependency Injection machen werden.<br>Wie Sie sehen k\u00f6nnen, haben wir eine Klasse \u201einterfaceParallelepiped\", die eine rein virtuelle Funktion namens \u201eParallelepipedArea\" enth\u00e4lt. Diese Schnittstelle wird von einer \u201eParallelepiped\"-Klasse geerbt, die die rein virtuelle Funktion \u00fcberschreibt, sodass unsere Klasse nicht abstrakt ist. Die \u00fcberschriebene Funktion wird so implementiert, dass sie die Fl\u00e4che unseres Parallelepipeds zur\u00fcckgibt. In dieser Klasse werden wir auch eine Funktion hinzuf\u00fcgen, die das Volumen unseres Parallelepipeds zur\u00fcckgibt. Diese Funktion mit der Bezeichnung \u201eParallelepipedVolume\" erh\u00e4lt 4 Parameter. Drei sind f\u00fcr H\u00f6he, L\u00e4nge und Breite und die vierte wird eine Instanz unserer Schnittstelle sein, mit deren Hilfe wir die Funktion \u201eParallelepipedArea\" aufrufen, die die Fl\u00e4che zur\u00fcckgibt.<\/p><p>Als N\u00e4chstes erstellen wir eine \u201emockParallelepiped\"-Klasse, die die Funktion innerhalb der Funktion, die wir testen wollen, nachahmt,  genauer gesagt die Funktion \u201eParallelepipedArea\". Wenn wir mit diesen Dingen fertig sind, k\u00f6nnen wir die Testfunktion vorbereiten. Es ist nicht viel anders als in unserem ersten Beispiel, solange wir in unserer Testfunktion eine Instanz der Klasse \u201eParallelepiped\" f\u00fcr das Makro \u201eEXPECT_EQ\" erzeugen, unsere Instanz als Parameter an unsere Funktion \u00fcbergeben und wir die Funktion auch mit unserer Instanz aufrufen werden.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8b5a1e1 elementor-widget elementor-widget-image\" data-id=\"8b5a1e1\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1978\" height=\"1280\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-8-1.png\" class=\"attachment-full size-full wp-image-12850\" alt=\"\" srcset=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-8-1.png 1978w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-8-1-1536x994.png 1536w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-8-1-600x388.png 600w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-8-1-1003x649.png 1003w\" sizes=\"(max-width: 1978px) 100vw, 1978px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-34cb015 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"34cb015\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-02042c2\" data-id=\"02042c2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f134c18 elementor-widget elementor-widget-spacer\" data-id=\"f134c18\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-848e98e elementor-widget elementor-widget-heading\" data-id=\"848e98e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Weitere Merkmale:\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1e93acd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1e93acd\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1ab8c30\" data-id=\"1ab8c30\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e9e7883 elementor-widget elementor-widget-text-editor\" data-id=\"e9e7883\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h6>\u2981 Mehrere Erwartungen in einem einzigen Test:<\/h6><p>Ein Integrationstest kann mehr als eine Erwartung beinhalten. Wenn Sie mehrere Erwartungen in einer Funktion verwenden, ist die Reihenfolge, in der sie verarbeitet oder ausgewertet werden, ebenfalls wichtig. Die Erwartungen werden in der umgekehrten Reihenfolge bewertet, in der sie definiert wurden. Die urspr\u00fcngliche Erwartung, deren Abgleicher passt, wird immer f\u00fcr Aktion und Kardinalit\u00e4t verwendet.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30aa71a elementor-widget elementor-widget-code-highlight\" data-id=\"30aa71a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>ON_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)) .WillByDefault(testing::Return(20));\r\n\r\nON_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)) .WillByDefault(testing::Return(30));\r\n\r\nON_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)) .WillByDefault(testing::Return(40));\r\n\r\n\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d8f913 elementor-widget elementor-widget-text-editor\" data-id=\"7d8f913\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h6>\u2981 Erwartungen mit Kardinalit\u00e4ten:<\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fb8efb elementor-widget elementor-widget-code-highlight\" data-id=\"8fb8efb\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>EXPECT_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)).Times(1) .WillOnce(testing::Return(20));\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-981bdaa elementor-widget elementor-widget-text-editor\" data-id=\"981bdaa\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Sie k\u00f6nnen eine direkte Zahl zur Angabe der Kardinalit\u00e4t verwenden. In dieser Situation sollten Sie die Funktion genau einmal aufrufen. Null ist ebenfalls eine g\u00fcltige Angabe. Damit wird \u00fcberpr\u00fcft, dass die Funktion nicht aufgerufen wurde. Es kann auch eine Mindestanzahl angegeben werden:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a042ae elementor-widget elementor-widget-code-highlight\" data-id=\"0a042ae\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>EXPECT_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)).Times( AtLeast(1).WillOnce(testing::Return(20));<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c111725 elementor-widget elementor-widget-text-editor\" data-id=\"c111725\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Damit die Bedingung im obigen Beispiel erf\u00fcllt ist, muss die Funktion mindestens einmal aufgerufen werden. Sie ist auch dann erfolgreich, wenn sie mehrmals aufgerufen wird.<\/p><h6>\u2981 Erwartungshaltung mit Aktionen:<\/h6><p>Sie k\u00f6nnen Aktionen verwenden, um einem Fake ein bestimmtes Verhalten zu geben. Die Definition eines R\u00fcckgabewerts ist eine gute Illustration daf\u00fcr.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e60b35b elementor-widget elementor-widget-code-highlight\" data-id=\"e60b35b\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>EXPECT_CALL(parallelepiped_mock_obj, ParallelepipedArea(length, width)).Times(1) .WillOnce(testing::Return(20));<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbcc611 elementor-widget elementor-widget-text-editor\" data-id=\"dbcc611\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Beim Funktionsaufruf wird der Wert 20 zur\u00fcckgegeben.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19245e7 elementor-widget elementor-widget-code-highlight\" data-id=\"19245e7\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>int value_returned = 20;\r\nint * pointer = &value_returned;\r\nEXPECT_CALL(parallelepiped_mock_obj, ParallelepipedArea(2, 2)).Times(1) .WillOnce(testing::ReturnPointee(pointer));\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3c165c elementor-widget elementor-widget-text-editor\" data-id=\"d3c165c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Gibt den durch den Zeiger angegebenen Wert zur\u00fcck, d. h. den Wert in der Variablen \u201evalue_returned\". Weitere Informationen finden Sie auch hier:<br><a href=\"https:\/\/google.github.io\/googletest\/reference\/actions.html\">https:\/\/google.github.io\/googletest\/reference\/actions.html<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d0ee22e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d0ee22e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7019684\" data-id=\"7019684\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9821347 elementor-widget elementor-widget-spacer\" data-id=\"9821347\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8bb94a elementor-widget elementor-widget-heading\" data-id=\"b8bb94a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Assertion\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a1e1fa elementor-widget elementor-widget-text-editor\" data-id=\"2a1e1fa\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das Ergebnis einer Zusicherung kann ein Erfolg, ein nicht-fataler Fehler oder ein fataler Fehler sein. Tritt ein fataler Fehler auf, wird die laufende Funktion abgebrochen. Andernfalls wird das Programm normal fortgesetzt. Assertionen werden in Tests verwendet, um sicherzustellen, dass sich der getestete Code richtig verh\u00e4lt. Ein Test schl\u00e4gt fehl, wenn er abst\u00fcrzt oder eine fehlgeschlagene Zusicherung enth\u00e4lt; andernfalls ist er erfolgreich.<br \/>Die meisten der unten aufgef\u00fchrten Makros werden als Paar mit einer EXPECT_-Variante und einer ASSERT_-Variante dargestellt. Mit dem EXPECT_-Makro k\u00f6nnen wir nicht-fatale Fehler erhalten und die aktuelle Funktion weiterlaufen lassen, w\u00e4hrend ASSERT_ fatale Fehler verursacht und die aktuelle Funktion abbricht.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39e9140 elementor-widget elementor-widget-code-highlight\" data-id=\"39e9140\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>EXPECT_EQ(ParallelepipedVolume(height, length, width), 11);\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fd95db elementor-widget elementor-widget-text-editor\" data-id=\"5fd95db\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>- Pr\u00fcfen Sie, ob das, was er zur\u00fcckgibt, gleich dem ist, was er eigentlich zur\u00fcckgeben sollte, kurz gesagt, pr\u00fcfen Sie, ob zwei Werte gleich sind.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d5594f elementor-widget elementor-widget-code-highlight\" data-id=\"4d5594f\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t<xmp>EXPECT_NE(ParallelepipedVolume(height, length, width), 3);<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f938350 elementor-widget elementor-widget-text-editor\" data-id=\"f938350\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>- Es ist genau das Gegenteil des EXPECT_EQ-Makros, es pr\u00fcft, ob zwei Werte ungleich sind.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e3024c6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e3024c6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5eab4fe\" data-id=\"5eab4fe\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f801988 elementor-widget elementor-widget-spacer\" data-id=\"f801988\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42ad53c elementor-widget elementor-widget-heading\" data-id=\"42ad53c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Zusammenfassung\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33e1af1 elementor-widget elementor-widget-text-editor\" data-id=\"33e1af1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"translation-block\">Abschlie\u00dfend zeigen die Beschreibungen, wie n\u00fctzlich Google Test und Google Mock f\u00fcr die Erstellung automatisierter Tests in C++ sind. Mit Meson k\u00f6nnen die Bibliotheken leicht in bestehende Projekte integriert werden.<br> Dar\u00fcber hinaus bietet Google Test mehrere grundlegende Optionen zum Schreiben von Behauptungen. Sie k\u00f6nnen auch Logmeldungen und skalierte Traces verwenden, um zus\u00e4tzliche Informationen f\u00fcr Tests bereitzustellen. <br>Au\u00dferdem erm\u00f6glicht das Framework die Untersuchung komplizierterer Probleme wie Ausnahmen und Abbr\u00fcche.Der gr\u00f6\u00dfte Schwachpunkt des Frameworks ist die fehlende Unterst\u00fctzung f\u00fcr asynchrone Funktionstests. Benutzer auf verschiedenen Plattformen k\u00f6nnen Probleme haben, da Google Test nicht als Threadsave gilt.<\/p><p>Referenzen:<\/p><ol><li><a href=\"https:\/\/google.github.io\/googletest\/primer.html\">https:\/\/google.github.io\/googletest\/primer.html<\/a><\/li><li><a href=\"https:\/\/google.github.io\/googletest\/advanced.html\">https:\/\/google.github.io\/googletest\/advanced.html<\/a><\/li><li><a href=\"https:\/\/google.github.io\/googletest\/gmock_for_dummies.html\">https:\/\/google.github.io\/googletest\/gmock_for_dummies.html<\/a><\/li><li><a href=\"https:\/\/google.github.io\/googletest\/gmock_cook_book.html\">https:\/\/google.github.io\/googletest\/gmock_cook_book.html<\/a><\/li><li><a href=\"https:\/\/google.github.io\/googletest\/gmock_cheat_sheet.html\">https:\/\/google.github.io\/googletest\/gmock_cheat_sheet.html<\/a><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b1315d1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b1315d1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-narrow\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-896b1b8\" data-id=\"896b1b8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c8bd4be elementor-widget elementor-widget-spacer\" data-id=\"c8bd4be\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e4d5e9 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"0e4d5e9\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e8de3d elementor-widget elementor-widget-heading\" data-id=\"2e8de3d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Weitere Artikel anschauen:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f12523a elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-posts--thumbnail-top elementor-widget elementor-widget-posts\" data-id=\"f12523a\" data-element_type=\"widget\" data-settings=\"{&quot;classic_row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;pagination_type&quot;:&quot;numbers&quot;,&quot;classic_row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:30,&quot;sizes&quot;:[]},&quot;classic_columns&quot;:&quot;3&quot;,&quot;classic_columns_tablet&quot;:&quot;2&quot;,&quot;classic_columns_mobile&quot;:&quot;1&quot;,&quot;classic_row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"posts.classic\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid\" role=\"list\">\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-14657 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized tag-accelerator-pedal-simulator tag-acoustic-tuning tag-automotive-industry tag-digitalgate tag-embedded-system-development tag-hardware-development tag-software-development\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/09\/10\/accelerator-pedal-simulator-for-acoustics-tuning\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img decoding=\"async\" width=\"930\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/09\/Accelerator-Pedal-Simulator-for-Acoustic-Tuning-1-930x620.png\" class=\"attachment-neve-blog size-neve-blog wp-image-14672\" alt=\"\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/09\/10\/accelerator-pedal-simulator-for-acoustics-tuning\/\" >\n\t\t\t\tAccelerator Pedal Simulator for Acoustics Tuning\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tSeptember 10, 2024\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>Have you ever wondered how the perfect roar of an engine, or the smooth hum of a luxury car is crafted? It all comes<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/09\/10\/accelerator-pedal-simulator-for-acoustics-tuning\/\" aria-label=\"Mehr \u00fcber Accelerator Pedal Simulator for Acoustics Tuning\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-14620 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized tag-condition-monitoring tag-data-acquisition-system tag-embedded-system-development tag-hardware-development tag-predictive-maintenance tag-software-development\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/08\/28\/industrial-data-acquisition-system\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/08\/IEPE_DAS-930x620.png\" class=\"attachment-neve-blog size-neve-blog wp-image-14649\" alt=\"Data Acquistion PCB board with DigitalGate logo on a gray background\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/08\/28\/industrial-data-acquisition-system\/\" >\n\t\t\t\tIndustrial Data Acquisition System\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tAugust 28, 2024\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>We&#8217;re excited to unveil one of our flagship products: an efficient and secure Data Acquisition System (DAS). Our team has designed this solution to<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/08\/28\/industrial-data-acquisition-system\/\" aria-label=\"Mehr \u00fcber Industrial Data Acquisition System\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-14267 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/15\/optimizing-our-custom-motor-controller-for-motion-control\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/background-blog-BMS-928x620.jpeg\" class=\"attachment-neve-blog size-neve-blog wp-image-14268\" alt=\"\" srcset=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/background-blog-BMS-928x620.jpeg 928w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/background-blog-BMS-18x12.jpeg 18w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/15\/optimizing-our-custom-motor-controller-for-motion-control\/\" >\n\t\t\t\tOptimizing our Custom Motor Controller for Motion Control\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tM\u00e4rz 15, 2024\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>Using our carefully designed board, we demonstrate the impressive power and flexibility of integrating modern technologies into motor controllers. In the realm of small<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/15\/optimizing-our-custom-motor-controller-for-motion-control\/\" aria-label=\"Mehr \u00fcber Optimizing our Custom Motor Controller for Motion Control\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-14259 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/01\/what-it-means-to-make-an-efficient-battery-management-system\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/Background-1-928x620.jpeg\" class=\"attachment-neve-blog size-neve-blog wp-image-14255\" alt=\"\" srcset=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/Background-1-928x620.jpeg 928w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/03\/Background-1-18x12.jpeg 18w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/01\/what-it-means-to-make-an-efficient-battery-management-system\/\" >\n\t\t\t\tWhat it means to make an efficient Battery Management System?\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tM\u00e4rz 1, 2024\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>Digital Gate is excited to introduce you to one of our flagship products: an efficient and secure Battery Management System (BMS), meticulously designed and<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/03\/01\/what-it-means-to-make-an-efficient-battery-management-system\/\" aria-label=\"Mehr \u00fcber What it means to make an efficient Battery Management System?\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-14236 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/02\/21\/embedded-world-2024\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/02\/EW24-Thumbnail-1-928x620.png\" class=\"attachment-neve-blog size-neve-blog wp-image-14239\" alt=\"\" srcset=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/02\/EW24-Thumbnail-1-928x620.png 928w, https:\/\/digitalgateamg.com\/wp-content\/uploads\/2024\/02\/EW24-Thumbnail-1-18x12.png 18w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/02\/21\/embedded-world-2024\/\" >\n\t\t\t\tEmbedded World 2024\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tFebruar 21, 2024\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>DigitalGate is excited to announce its forthcoming participation at Embedded World 2024 taking place in Nuremberg from the 9th to the 11th of April.<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2024\/02\/21\/embedded-world-2024\/\" aria-label=\"Mehr \u00fcber Embedded World 2024\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<article class=\"elementor-post elementor-grid-item post-13342 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized\" role=\"listitem\">\n\t\t\t\t<a class=\"elementor-post__thumbnail__link\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2023\/08\/08\/capacitance-preservation-strategies-for-dc-bias-in-mlccs\/\" tabindex=\"-1\" >\n\t\t\t<div class=\"elementor-post__thumbnail\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"620\" src=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2023\/08\/blog-info-new-e1691567543143-930x620.png\" class=\"attachment-neve-blog size-neve-blog wp-image-13420\" alt=\"\" \/><\/div>\n\t\t<\/a>\n\t\t\t\t<div class=\"elementor-post__text\">\n\t\t\t\t<h3 class=\"elementor-post__title\">\n\t\t\t<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2023\/08\/08\/capacitance-preservation-strategies-for-dc-bias-in-mlccs\/\" >\n\t\t\t\tKapazit\u00e4tserhalt: Strategien f\u00fcr DC-Vorspannung in MLCCs\t\t\t<\/a>\n\t\t<\/h3>\n\t\t\t\t<div class=\"elementor-post__meta-data\">\n\t\t\t\t\t<span class=\"elementor-post-date\">\n\t\t\tAugust 8, 2023\t\t<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-post__excerpt\">\n\t\t\t<p>Ist die Kapazit\u00e4t des Kondensators immer gleich? Keramische Vielschichtkondensatoren (Multilayer Ceramic Capacitors, MLCCs) bieten eine Reihe von Vorteilen,<\/p>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-post__read-more-wrapper\">\n\t\t\n\t\t<a class=\"elementor-post__read-more\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2023\/08\/08\/capacitance-preservation-strategies-for-dc-bias-in-mlccs\/\" aria-label=\"Mehr \u00fcber Capacitance Preservation: Strategies for DC Bias in MLCCs\" tabindex=\"-1\" >\n\t\t\tRead More \u00bb\t\t<\/a>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/article>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t<div class=\"e-load-more-anchor\" data-page=\"1\" data-max-page=\"4\" data-next-page=\"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/page\/2\/\"><\/div>\n\t\t\t\t<nav class=\"elementor-pagination\" aria-label=\"Seitennummerierung\">\n\t\t\t<span aria-current=\"page\" class=\"page-numbers current\"><span class=\"elementor-screen-only\">Seite<\/span>1<\/span>\n<a class=\"page-numbers\" href=\"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/page\/2\/\"><span class=\"elementor-screen-only\">Seite<\/span>2<\/a>\n<a class=\"page-numbers\" href=\"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/page\/3\/\"><span class=\"elementor-screen-only\">Seite<\/span>3<\/a>\n<a class=\"page-numbers\" href=\"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/page\/4\/\"><span class=\"elementor-screen-only\">Seite<\/span>4<\/a>\t\t<\/nav>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>The investigation of artifacts and the behavior of the software under test is known as software testing. It also determines whether the actual results match the predicted outcomes and assists in the detection of faults, missing requirements, or gaps. The final step before releasing a product to the market is testing. Examining, analyzing, as well&hellip;&nbsp;<a href=\"https:\/\/digitalgateamg.com\/de\/blog\/2023\/08\/08\/capacitance-preservation-strategies-for-dc-bias-in-mlccs\/\" class=\"\" rel=\"bookmark\">Weiterlesen &raquo;<span class=\"screen-reader-text\">Kapazit\u00e4tserhalt: Strategien f\u00fcr DC-Vorspannung in MLCCs<\/span><\/a><\/p>","protected":false},"author":12,"featured_media":12847,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"coauthors":[],"class_list":["post-8752","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.1 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Software testing - DigitalGate Custom Electronics<\/title>\n<meta name=\"description\" content=\"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/digitalgateamg.com\/de\/blog\/2022\/05\/20\/software-testing\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software testing\" \/>\n<meta property=\"og:description\" content=\"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/digitalgateamg.com\/de\/blog\/2022\/05\/20\/software-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"DigitalGate Custom Electronics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DigitalGateamg\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-20T07:50:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-07T14:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1978\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Digital Gate\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Digital Gate\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"15\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Digital Gate\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/\"},\"author\":{\"name\":\"Digital Gate\",\"@id\":\"https:\/\/digitalgateamg.com\/#\/schema\/person\/27511cb01dbba51abd9b489e6adc2fce\"},\"headline\":\"Software testing\",\"datePublished\":\"2022-05-20T07:50:40+00:00\",\"dateModified\":\"2022-12-07T14:18:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/\"},\"wordCount\":2210,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/digitalgateamg.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/\",\"url\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/\",\"name\":\"Software testing - DigitalGate Custom Electronics\",\"isPartOf\":{\"@id\":\"https:\/\/digitalgateamg.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png\",\"datePublished\":\"2022-05-20T07:50:40+00:00\",\"dateModified\":\"2022-12-07T14:18:37+00:00\",\"description\":\"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...\",\"breadcrumb\":{\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage\",\"url\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png\",\"contentUrl\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png\",\"width\":1978,\"height\":1280,\"caption\":\"software testing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/digitalgateamg.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software testing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/digitalgateamg.com\/#website\",\"url\":\"https:\/\/digitalgateamg.com\/\",\"name\":\"DigitalGate Custom Electronics\",\"description\":\"Embedded Software and Hardware Solutions\",\"publisher\":{\"@id\":\"https:\/\/digitalgateamg.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/digitalgateamg.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/digitalgateamg.com\/#organization\",\"name\":\"DigitalGate Amg S.A.\",\"url\":\"https:\/\/digitalgateamg.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/digitalgateamg.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2021\/10\/logo-firma.png\",\"contentUrl\":\"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2021\/10\/logo-firma.png\",\"width\":370,\"height\":370,\"caption\":\"DigitalGate Amg S.A.\"},\"image\":{\"@id\":\"https:\/\/digitalgateamg.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/DigitalGateamg\/\",\"https:\/\/www.linkedin.com\/company\/sc-digitalgate-amg-srl\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/digitalgateamg.com\/#\/schema\/person\/27511cb01dbba51abd9b489e6adc2fce\",\"name\":\"Digital Gate\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/digitalgateamg.com\/#\/schema\/person\/image\/06a4a41e8bbe5a2d21bfeeeb4ac5cf5e\",\"url\":\"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1776852001\",\"contentUrl\":\"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1776852001\",\"caption\":\"Digital Gate\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Software testing - DigitalGate Custom Electronics","description":"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/digitalgateamg.com\/de\/blog\/2022\/05\/20\/software-testing\/","og_locale":"de_DE","og_type":"article","og_title":"Software testing","og_description":"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...","og_url":"https:\/\/digitalgateamg.com\/de\/blog\/2022\/05\/20\/software-testing\/","og_site_name":"DigitalGate Custom Electronics","article_publisher":"https:\/\/www.facebook.com\/DigitalGateamg\/","article_published_time":"2022-05-20T07:50:40+00:00","article_modified_time":"2022-12-07T14:18:37+00:00","og_image":[{"width":1978,"height":1280,"url":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","type":"image\/png"}],"author":"Digital Gate","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Digital Gate","Gesch\u00e4tzte Lesezeit":"15\u00a0Minuten","Written by":"Digital Gate"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#article","isPartOf":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/"},"author":{"name":"Digital Gate","@id":"https:\/\/digitalgateamg.com\/#\/schema\/person\/27511cb01dbba51abd9b489e6adc2fce"},"headline":"Software testing","datePublished":"2022-05-20T07:50:40+00:00","dateModified":"2022-12-07T14:18:37+00:00","mainEntityOfPage":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/"},"wordCount":2210,"commentCount":0,"publisher":{"@id":"https:\/\/digitalgateamg.com\/#organization"},"image":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","articleSection":["Uncategorized"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/","url":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/","name":"Software testing - DigitalGate Custom Electronics","isPartOf":{"@id":"https:\/\/digitalgateamg.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage"},"image":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","datePublished":"2022-05-20T07:50:40+00:00","dateModified":"2022-12-07T14:18:37+00:00","description":"The behavior of the software under test is known as software testing. Learn more about GoogleTest and GoogleMock and how to use them...","breadcrumb":{"@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#primaryimage","url":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","contentUrl":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","width":1978,"height":1280,"caption":"software testing"},{"@type":"BreadcrumbList","@id":"https:\/\/digitalgateamg.com\/blog\/2022\/05\/20\/software-testing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/digitalgateamg.com\/"},{"@type":"ListItem","position":2,"name":"Software testing"}]},{"@type":"WebSite","@id":"https:\/\/digitalgateamg.com\/#website","url":"https:\/\/digitalgateamg.com\/","name":"DigitalGate Custom Electronics","description":"Embedded Software and Hardware Solutions","publisher":{"@id":"https:\/\/digitalgateamg.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/digitalgateamg.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/digitalgateamg.com\/#organization","name":"DigitalGate Amg S.A.","url":"https:\/\/digitalgateamg.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/digitalgateamg.com\/#\/schema\/logo\/image\/","url":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2021\/10\/logo-firma.png","contentUrl":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2021\/10\/logo-firma.png","width":370,"height":370,"caption":"DigitalGate Amg S.A."},"image":{"@id":"https:\/\/digitalgateamg.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DigitalGateamg\/","https:\/\/www.linkedin.com\/company\/sc-digitalgate-amg-srl\/"]},{"@type":"Person","@id":"https:\/\/digitalgateamg.com\/#\/schema\/person\/27511cb01dbba51abd9b489e6adc2fce","name":"Digital Gate","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/digitalgateamg.com\/#\/schema\/person\/image\/06a4a41e8bbe5a2d21bfeeeb4ac5cf5e","url":"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1776852001","contentUrl":"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1776852001","caption":"Digital Gate"}}]}},"jetpack_featured_media_url":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/comments?post=8752"}],"version-history":[{"count":0,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/media\/12847"}],"wp:attachment":[{"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/media?parent=8752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/categories?post=8752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/tags?post=8752"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/coauthors?post=8752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}