{"id":264,"date":"2019-07-16T13:38:02","date_gmt":"2019-07-16T13:38:02","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=264"},"modified":"2020-12-08T16:53:53","modified_gmt":"2020-12-08T16:53:53","slug":"mocks-in-der-testumgebung-teil-3","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/","title":{"rendered":"Mocks in der Testumgebung (Teil 3)"},"content":{"rendered":"\n<p>Im <a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-2\/\">zweiten Teil<\/a> haben wir gesehen, wie man mit Hilfe eines Mock-Framework (in diesem Fall Moq) eine Anwendung so anpassen kann, dass bestimmte Schnittstellen f\u00fcr Tests gemockt werden und somit keine Fehler liefern k\u00f6nnen.<\/p>\n\n\n\n<p>In diesem Teil erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen. Hierzu verwenden wir \u201eDocker for Windows\u201c, welches seit Windows 10 genutzt werden kann. Vor Windows 10 musste man Hyper-V verwenden, um z. B. eine Linux-Maschine zu simulieren, auf der man Container \u00fcber Docker laufen lassen konnte. Mit dem neusten Betriebssystem von Microsoft ist dieses Vorgehen auch auf Windows m\u00f6glich. Man kann sich die neuste Version auf <a href=\"https:\/\/docs.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docs.docker.com<\/a> herunterladen und installieren. Der daf\u00fcr heruntergeladene Installer bereitet das System f\u00fcr Docker vor.<\/p>\n\n\n\n<p>Mit Docker starten wir unsere Heldendatenbank \u2013 genauso wie die gleich neu erstellte APImock-Anwendung. Mit dem Postman werden wir daraufhin eine POST-Anfrage durchf\u00fchren, die \u00fcber die Heldendatenbank in den APImock l\u00e4uft.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium is-resized\"><img decoding=\"async\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-600x540.jpg\" alt=\"\" class=\"wp-image-898\" width=\"500\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-600x540.jpg 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-1024x921.jpg 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-768x691.jpg 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-640x576.jpg 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation-1200x1080.jpg 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_darstellung_applikation.jpg 1208w\" sizes=\"(max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 1: Darstellung der Applikation<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Visual Studio verf\u00fcgt \u00fcber eine Extension, die die Unterst\u00fctzung mit Docker erlaubt. Beim Erstellen eines neuen Projektes k\u00f6nnen wir im Fenster f\u00fcr die Vorlagen ein H\u00e4kchen setzen, um das Projekt mit Docker f\u00fcr Windows zu kombinieren. Au\u00dferdem verwenden wir die Web-API-Vorlage um kein komplett neues Projekt erstellen zu m\u00fcssen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"391\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_2-600x391.png\" alt=\"Erstellung einer Web-API in Visual Studio\" class=\"wp-image-545\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_2-600x391.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_2-768x500.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_2-640x417.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_2.png 979w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 2: Erstellung einer Web-API in Visual Studio<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Beim Laden des Projekts wird direkt ein Image im Docker erstellt. Bei jedem neuen Build des Projekts wird das Image in Docker aktualisiert.<\/p>\n\n\n\n<p>Wir k\u00f6nnen nun zeitgleich mit der PowerShell von Windows die Docker-Befehle ausf\u00fchren, um unsere aktuellen Images auszulesen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"218\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_3.png\" alt=\"Von Visual Studio erstellte Images\" class=\"wp-image-546\"\/><figcaption><em>Abbildung 3: Von Visual Studio erstellte Images<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Die Images k\u00f6nnen, \u00e4hnlich wie bei GitHub, in ein Repository f\u00fcr Versionskontrollen und f\u00fcr den Zugriff von verschiedenen Arbeitspl\u00e4tzen hochgeladen werden. Daf\u00fcr muss der Tag des Images an den Repository-Namen angepasst und mit dem Push-Befehl darauf hochgeladen werden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"290\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_4-600x290.png\" alt=\"Upload ins Docker Repository\" class=\"wp-image-547\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_4-600x290.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_4-768x371.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_4-640x309.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_4.png 837w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 4: Upload ins Docker Repository<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Da die Web-API-Vorlage genutzt wurde, sind in der Controller-Klasse bereits die vier Standard-Rest-Befehle (GET, POST, DELETE, PUT) vorgeneriert. Wir l\u00f6schen alle Funktionen bis auf POST, da es sich hierbei f\u00fcr den Mock um eine \u201ebanale Funktion\u201c handeln soll.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"222\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-600x222.jpg\" alt=\"Ausschnitt Code - API-Route der Funktion\" class=\"wp-image-548\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-600x222.jpg 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-1024x379.jpg 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-768x285.jpg 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-1536x569.jpg 1536w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-640x237.jpg 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5-1200x445.jpg 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_5.jpg 1544w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 5: Codeausschnitt &#8211; API-Route der Funktion<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Somit haben wir nun eine Anwendung, die nur eine Funktion hat und nichts anderes ausf\u00fchrt. Der Grundgedanke f\u00fcr diese Schnittstelle ist, dass die Datenbank-API den Heldennamen an diese Anwendung schickt, um die Items-Konfiguration f\u00fcr den jeweiligen Helden zu bekommen. Dabei wird die PostMock()-Funktion bei einer POST-Anfrage ausgef\u00fchrt und der mitgelieferte Heldenname w\u00fcrde f\u00fcr die Anfrage den Algorithmus verwenden. Hier wird allerdings statt eines Algorithmus ein fester String eingesetzt, welcher immer dieselbe Antwort auf jede Anfrage liefert. Somit ist sichergestellt, dass keine Fehler von der neuen Anwendung kommen. So kann auch sichergestellt werden, dass diese Schnittstelle wie gew\u00fcnscht funktioniert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"261\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-600x261.jpg\" alt=\"Ausschnitt Code: POST-Zugriff auf die API\" class=\"wp-image-549\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-600x261.jpg 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-1024x445.jpg 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-768x334.jpg 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-1536x668.jpg 1536w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-640x278.jpg 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6-1200x522.jpg 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_6.jpg 1557w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 6: Codeausschnitt: POST-Zugriff auf die API<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In der Heldendatenbank-API wurde eine POST-Funktion implementiert, die die Anfrage auf den Heldennamen an die APImock weiterleitet. Daf\u00fcr wird die WebClient-Klasse verwendet, welche mit einem String (Heldenname) gef\u00fcllt wird. Diese wird dann \u00fcber die Funktion der Klasse UploadValues() weitergeleitet.<\/p>\n\n\n\n<p>Beide Anwendungen sind nun fertig und k\u00f6nnen im Visual Studio \u00fcber den Docker-Button gestartet werden. Sobald beide Anwendungen gestartet wurden, kann man sich \u00fcber die PowerShell die aktuell laufenden Container anschauen. Mit dem Docker-Befehl \u201edocker ps\u201c erfahren wir auch den Port, auf den die Container laufen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"190\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_7-600x190.png\" alt=\"Ausschnitt aktuell laufende Container\" class=\"wp-image-550\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_7-600x190.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_7-640x202.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_7.png 715w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 7: Aktuell laufende Container<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wenn wir nun mit dem Postman eine Anfrage auf die Route \u201eapi\/Helden\/MockItems\u201c der Heldendatenbank-API ausf\u00fchren, wird diese an den APImock weitergeleitet und wir sehen die Antwort f\u00fcr den Helden \u201eMaria\u201c.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"365\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_8-600x365.png\" alt=\"Ausschnitt Schnittstellentest mit Postman\" class=\"wp-image-551\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_8-600x365.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_8-768x468.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_8-640x390.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201907_Mocks_Testumgebung_Teil3_8.png 905w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 8: Schnittstellentest mit Postman<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Die nicht gemockte Anwendung w\u00fcrde in diesem Fall f\u00fcr den Helden \u201eMaria\u201c die passenden Ausr\u00fcstungsgegenst\u00e4nde auflisten. Da es sich hier allerdings um einen Mock handelt, ist der R\u00fcckgabe-String \u201eSchwert\u201c passend zur festen Variable, die wir gesetzt haben.<\/p>\n\n\n\n<p>Somit k\u00f6nnen nun s\u00e4mtliche Funktionen getestet werden, welche die Schnittstelle zur APImock nutzen, ohne Fehler von der APImock zu erwarten.<\/p>\n\n\n\n<p>Nun haben wir drei verschiedene Varianten gesehen, wie Mocks eingesetzt werden k\u00f6nnen:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Das <a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-1\/\">Framework-Moq<\/a>, welches daf\u00fcr genutzt wird, Mock-Objekte innerhalb der Anwendung zu erstellen<\/li><li><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-2\/\">API-Tools<\/a> (Postman), die eine Art Mock f\u00fcr das Frontend darstellen<\/li><li>Eine Selbstgeschriebene Anwendung, die als Mock dient<\/li><\/ol>\n\n\n\n<p>Ich hoffe, ich konnte Ihnen hiermit einen kleinen Einblick in der Welt der Mocks geben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Teil der Blogpost-Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen. Hierzu verwenden wir \u201eDocker for Windows\u201c, welches seit Windows 10 genutzt werden kann.<\/p>\n","protected":false},"author":19,"featured_media":1274,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[10],"tags":[138,139,140,141,142,143,144,136,137],"topics":[241],"class_list":["post-264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qualitaetssicherung","tag-mock-framework","tag-moq","tag-docker-for-windows","tag-heldendatenbank","tag-api","tag-framework-moq","tag-api-tools","tag-testumgebung","tag-mocks","topics-mocks-in-der-testumgebung"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-16T13:38:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-08T16:53:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1184\" \/>\n\t<meta property=\"og:image:height\" content=\"665\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Neco Giedrojc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Neco Giedrojc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/\",\"name\":\"Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png\",\"datePublished\":\"2019-07-16T13:38:02+00:00\",\"dateModified\":\"2020-12-08T16:53:53+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/636a70d9f661e239161bd72d164b9942\"},\"description\":\"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png\",\"width\":1184,\"height\":665},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mocks in der Testumgebung (Teil 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/636a70d9f661e239161bd72d164b9942\",\"name\":\"Neco Giedrojc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/giedrojc_neco-scaled-e1588663640620-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/giedrojc_neco-scaled-e1588663640620-150x150.jpg\",\"caption\":\"Neco Giedrojc\"},\"description\":\"Neco Giedrojc schloss sich kurz nach seinem Studienabschluss im Bereich \u201eComputer Engineering\u201c dem Testbereich der ZEISS Digital Innovation an und arbeitet dort als Tester. Dabei befasst er sich in seinem Hauptprojekt aktuell mit dem Integrationstest komplexer Systeme.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/necogiedrojc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog","description":"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.","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:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/","og_locale":"de_DE","og_type":"article","og_title":"Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog","og_description":"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2019-07-16T13:38:02+00:00","article_modified_time":"2020-12-08T16:53:53+00:00","og_image":[{"width":1184,"height":665,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png","type":"image\/png"}],"author":"Neco Giedrojc","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Neco Giedrojc","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/","name":"Mocks in der Testumgebung (Teil 3) - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png","datePublished":"2019-07-16T13:38:02+00:00","dateModified":"2020-12-08T16:53:53+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/636a70d9f661e239161bd72d164b9942"},"description":"In diesem Teil der Reihe erstellen wir eine selbst programmierte Mock-Anwendung und werden mit unserer Heldendatenbank darauf zugreifen.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi.png","width":1184,"height":665},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/mocks-in-der-testumgebung-teil-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Mocks in der Testumgebung (Teil 3)"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/636a70d9f661e239161bd72d164b9942","name":"Neco Giedrojc","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/giedrojc_neco-scaled-e1588663640620-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/giedrojc_neco-scaled-e1588663640620-150x150.jpg","caption":"Neco Giedrojc"},"description":"Neco Giedrojc schloss sich kurz nach seinem Studienabschluss im Bereich \u201eComputer Engineering\u201c dem Testbereich der ZEISS Digital Innovation an und arbeitet dort als Tester. Dabei befasst er sich in seinem Hauptprojekt aktuell mit dem Integrationstest komplexer Systeme.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/necogiedrojc\/"}]}},"author_meta":{"display_name":"Neco Giedrojc","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/necogiedrojc\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2019\/07\/201907_darstellung_applikation_fi-600x337.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Mock-Framework<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Moq<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Docker for Windows<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Heldendatenbank<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">API<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Framework-Moq<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">API-Tools<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Testumgebung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Mocks<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Mock-Framework<\/span>","<span class=\"advgb-post-tax-term\">Moq<\/span>","<span class=\"advgb-post-tax-term\">Docker for Windows<\/span>","<span class=\"advgb-post-tax-term\">Heldendatenbank<\/span>","<span class=\"advgb-post-tax-term\">API<\/span>","<span class=\"advgb-post-tax-term\">Framework-Moq<\/span>","<span class=\"advgb-post-tax-term\">API-Tools<\/span>","<span class=\"advgb-post-tax-term\">Testumgebung<\/span>","<span class=\"advgb-post-tax-term\">Mocks<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 7\u00a0Jahren ago","modified":"Updated 5\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on Juli 16, 2019","modified":"Updated on Dezember 8, 2020"},"absolute_dates_time":{"created":"Posted on Juli 16, 2019 1:38 p.m.","modified":"Updated on Dezember 8, 2020 4:53 p.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=264"}],"version-history":[{"count":22,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/264\/revisions"}],"predecessor-version":[{"id":1909,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/264\/revisions\/1909"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/1274"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=264"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}