{"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":"\t\t<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\" data-e-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\" data-e-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-e-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\tThe 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.\nThe final step before releasing a product to the market is testing. Examining, analyzing, as well as evaluating many aspects of a product are all part of this process.\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\" data-e-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\" data-e-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-e-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-e-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\">Software Testing's Importance\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\" data-e-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\" data-e-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-e-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>Program testing is critical because it allows you to find any faults or errors in the software early and correct them before you deliver the final product. A well-tested software product provides dependability, security, and excellent performance, which saves time, and money, and improves customer satisfaction.<\/p><p>Software testing is necessary for the following reasons:<\/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-e-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. Security <\/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-e-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>As a specific product undergoes testing, the users can be sure that they are going to receive a reliable product. Also, the personal details of the user can be safe. Users can receive products that are free from vulnerability with the aid of software testing.<\/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-e-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. Cost-Effective<\/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-e-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>Software testing has a lot of advantages. One of the most important reasons why companies choose software testing services is the project&#8217;s cost-effectiveness.<br \/>Software testing is made up of several initiatives. If you discover a bug early in the development process, the cost to repair it is lower. As a result, it is a need that you complete the testing as quickly as possible. When you engage quality analysts or testers for projects that have a lot of experience and have gone through technical school, you&#8217;re investing, and the project will profit from it.<\/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-e-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. Quality of the Product<\/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-e-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>Software testing is an art that aids in a company&#8217;s market reputation by delivering a high-quality product to the client according to the requirement specification papers. process.<\/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-e-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. Satisfaction of the customer<\/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-e-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>All of the preceding results in a satisfied client! As clients, we all expect system stability. If you test during the development lifecycle, you can see how well the program was designed. This increases customer trust.<\/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-e-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. Improvements to the development process<\/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-e-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>With the help of Quality Assurance, you may locate a range of scenarios and faults. You can use them to reproduce the problem.<\/p><p>It is quite easy, and the devs must correct it as soon as possible. Furthermore, software testers should work with the development team in tandem, which helps to speed up the development process.<\/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-e-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. Adding new features is simple<\/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-e-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>Change is more difficult the more integrated and older the code is. Tests help developers avoid calcification by letting them incorporate new functionality. Changing older sections of your codebase as a new developer might be difficult, but with tests, you&#8217;ll know whether you&#8217;ve broken anything vital. This allows your program to stand out in the market.<\/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\" data-e-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\" data-e-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-e-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-e-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\">Categories of software testing\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\" data-e-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\" data-e-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-e-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>There are a variety of software tests, each with its own set of goals and strategies:<\/p><ul><li style=\"list-style-type: none;\"><ul><li><strong>Usability testing:<\/strong>\u00a0validating a customer&#8217;s ability to execute a task with a system or online application.<\/li><li><strong>Acceptance testing:<\/strong>\u00a0testing to see if the software system meets the requirements.<\/li><li><strong>Integration testing:<\/strong>\u00a0individual units\/components are merged and tested as a group in this stage of software testing.The goal of this level of testing is to find flaws in the way integrated units interact.\u00a0In Integration Testing, test drivers and test stubs are employed.<\/li><li><strong>Functional testing:<\/strong>\u00a0verifies the software system&#8217;s compliance with functional requirements and specifications. You can use it to check that the output of a software program meets the functional requirements by giving acceptable input.<\/li><li><strong>Performance testing:<\/strong>\u00a0performance testing is a type of non-functional software testing that examines an application&#8217;s stability, speed, scalability, and responsiveness under various workloads.<\/li><li><strong>Regression testing:<\/strong> this is a way of testing software that ensures that an application continues to work as implemented after any code changes, updates, or upgrades.<\/li><li><strong>Stress testing:<\/strong> this actually involves testing the system&#8217;s ability to withstand a certain amount of stress before it locks up. This type of testing is a non-functional test.<\/li><li><strong>Unit testing<\/strong>: testing individual modules for errors. This is about the accuracy of the functionality of the independent modules.\u00a0The basic purpose of this stage of testing is to isolate each component of the system so that faults can be identified, analyzed, and corrected.<\/li><li><strong>Non-functional testing:<\/strong>\u00a0non-functional testing is a way of testing software that checks for non-functional aspects of software such as reliability, load testing, performance, and accountability. The main purpose of non-functional testing is to determine the read rate of the software system using non-functional criteria.<\/li><\/ul><\/li><\/ul><p>In this article, we will focus more on\u00a0<strong>unit testing.<\/strong><\/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\" data-e-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\" data-e-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-e-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-e-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\">We use the following tools to unit test the 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-e-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-e-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>It is built on the xUnit architecture.<\/li><li>Is a collection of &#8220;Frameworks&#8221; for developing and automating test cases.<\/li><li>It&#8217;s a C++ test-writing library.<\/li><\/ul><p>The purpose of using a Google Test:<\/p><ul><li>We can use Google Test to help us develop better C++ tests.<\/li><li>It separates the tests by executing each one on a distinct item, making them independent and repeatable.<\/li><li>Google Test is portable and reusable, as it runs on a variety of operating systems (Linux, Windows, and Mac) and compilers.<\/li><li>When tests fail, as much information as possible about the problem should be provided.<\/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-e-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-e-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>It is built on the xUnit architecture.<\/li><li>Is a collection of &#8220;Frameworks&#8221; for developing and automating test cases.<\/li><li>It&#8217;s a C++ test-writing library.<\/li><\/ul><p>The purpose of using a Google Test:<\/p><ul><li>We can use Google Test to help us develop better C++ tests.<\/li><li>It separates the tests by executing each one on a distinct item, making them independent and repeatable.<\/li><li>Google Test is portable and reusable, as it runs on a variety of operating systems (Linux, Windows, and Mac) and compilers.<\/li><li>When tests fail, as much information as possible about the problem should be provided.<\/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\" data-e-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\" data-e-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-e-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-e-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\">Practice with google test and 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\" data-e-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\" data-e-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-e-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>Technology Google test and Google mock require the usage of a build system like CMake, Bazel, Meson, or another build system.<\/p><h5>Steps to perform the google test and google mock setup using the meson build system:<\/h5><p><strong>Project Setup with meson:\u00a0<\/strong>To do this we must have a wrap file with the necessary configuration. For more details about the content of such a file, we invite you to read the official documentation of the meson construction system https:\/\/mesonbuild.com\/Wrap-dependency-system-manual.html .<\/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-e-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-e-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>Once the configuration is ready for this wrap file we can download in our project.<\/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-e-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-e-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; building the executable:<\/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-e-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-e-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>The following data will be included in the executable:<\/p><ul><li>his name between &#8216; &#8216;<\/li><li>the source files we want to test.<\/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-e-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-e-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>\u00a0Access to libraries and use of dependencies<\/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-e-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\" data-e-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\" data-e-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-e-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-e-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\">Preparation for the testing process:\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-e-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>Writing the main function corresponding to the test:<\/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-e-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-e-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 Preparation<\/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-e-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-e-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>Incorporating Mocks into Tests:<\/strong><\/h6>\n\n<ul>\n \t<li>Import the Google Mock names from the testing namespace so that you may use them without qualification. You need to do this only once per code. Keep in mind that namespaces are a good notion and beneficial to your health.)<\/li>\n\n \t<li>Make some fictitious things.<\/li>\n\n \t<li>Define your expectations for them. For example: How many times will you call a function?. What arguments are you using? What should it do, and so on).<\/li>\n\n \t<li>\u00a0Exercise some code that makes use of the mocks; optionally, utilize Google Test assertions to verify the result. If you call a fake method more than once or with incorrect parameters, you&#8217;ll get an error right away.<\/li>\n\n \t<li>When a mock is destroyed, Google Mock checks to see if all of the expectations associated with it are fulfilled.<\/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\" data-e-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\" data-e-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-e-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-e-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\">Practice with google test and 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-e-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>The function we want to 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-ab1a934 elementor-widget elementor-widget-code-highlight\" data-id=\"ab1a934\" data-element_type=\"widget\" data-e-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-e-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>Our google test and 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-e-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-e-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>The next step is to compile and run the file to see the test results.<\/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-e-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-e-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>Now that we&#8217;ve reached the end of the article let&#8217;s talk a bit about our test.<br \/>The function we want to test is &#8220;ParallelepipedVolume&#8221; this function returns the volume. In this function, we can find another function called &#8220;ParallelepipedArea&#8221; which returns the area.<br \/>In the &#8220;ON_CALL&#8221; macro we tricked the &#8220;ParallelepipedArea&#8221; function to return something different from what it would return if we put the specific parameter values.<br \/>And in the &#8220;EXPECT_EQ&#8221; macro we expect the &#8220;ParallelepipedVolume&#8221; function to return the right thing given the mock above.<\/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-e-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 relationship:<\/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-e-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 is a design technique in which one item is matched by another object that it relies on. This technique separates the responsibilities of creating and using objects, resulting in loosely connected applications.<\/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-e-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\" data-e-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\" data-e-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-e-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>A design pattern is a solution that is used to solve a common problem during the development of software. It is a description or template for solving a problem that can be applied to a variety of scenarios.\u00a0<\/p><p>Now, let&#8217;s illustrate what we just talked about:<\/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-e-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-e-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\">Output test:<\/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-e-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-e-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>Let&#8217;s talk a bit about our example. We want to test the same function and apply mock on the same function as before, only this time we will do it through a design pattern called dependency injection.<br \/>As you can see we have a class &#8220;interfaceParallelepiped&#8221; which contains a pure virtual function named &#8220;ParallelepipedArea&#8221;. This interface will be inherited by a &#8220;parallelepiped&#8221; class that will override the purely virtual function so that our class is not an abstract one. The overridden function will be implemented in such a way that it returns the area of our parallelepiped. In this class, we will also add a function that will return the volume of our parallelepiped. This function, called &#8220;ParallelepipedVolume&#8221;, will get 4 parameters. Three are for height, length, and width, and the 4th one will be an instance of our interface with the help of which we will call the function &#8220;ParallelepipedArea&#8221; which will return the area.\u00a0<\/p><p>Next, we will make a &#8220;mockParallelepiped&#8221; class that will mock the function inside the function we want to test,\u00a0 more precisely we will mock the &#8220;ParallelepipedArea&#8221; function. Finishing with these things, we can prepare the test function. It is not much different from our first example, as long as in our test function we will make an instance of the class &#8220;parallelepiped&#8221; for the macro &#8220;EXPECT_EQ&#8221;, our instance will be passed as a parameter to our function and we will also call the function using our instance.<\/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-e-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\" data-e-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\" data-e-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-e-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-e-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\">Other features:\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\" data-e-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\" data-e-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-e-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 Multiple expectations in a single test:<\/h6><p>An integration test may involve more than one expectation. When you use numerous expectations in a function, the order in which they will be processed or evaluated is also important. Expectations are assessed in the reverse order in which they were defined. The initial expectation whose matcher fits is always used for action and cardinality.<\/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-e-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-e-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 Expectations with cardinalities:<\/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-e-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-e-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>You can use a direct number to specify cardinality. You should call the function precisely one time in this situation. Zero is a valid specification as well. This verifies that the function hasn&#8217;t been invoked. A minimum number can be specified as well:<\/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-e-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-e-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>For the condition to be fulfilled in the example above, the function must be called at least once. It is also successful if it is called several times.<\/p><h6>\u2981 Expectations with actions:<\/h6><p>You can use actions to give a fake certain behavior. The definition of a return value is a good illustration of this.<\/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-e-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-e-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>During the function call, the value 20 is returned.<\/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-e-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-e-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>Returns the value indicated by the pointer, i.e. the value in the variable &#8220;value_returned&#8221;.&nbsp; You can also find more information right here:<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\" data-e-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\" data-e-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-e-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-e-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-e-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>The outcome of an assertion may be a success, nonfatal failure, or fatal failure. If a fatal failure occurs the current function will be aborted. Otherwise, the program proceeds normally. Assertions are used in tests to ensure that the tested code behaves right. A test fails if it crashes or has a failed assertion; otherwise, it succeeds.<br \/>Most of the macros listed below are presented as a pair with an EXPECT_ variant and an ASSERT_ variant. Using the EXPECT_ macro we can get non-fatal failures and allow the current function to continue running, whereas ASSERT_ causes fatal failures and cancels the current function.<\/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-e-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-e-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>&#8211; Check if what it returns is equal to what it should really return, in short check if two values are equal.<\/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-e-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-e-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>&#8211; It is exactly the opposite of the EXPECT_EQ macro, it checks if two values are not equal.<\/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\" data-e-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\" data-e-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-e-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-e-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\">Summary\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-e-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>To conclude, the descriptions prove how useful Google Test and Google Mock are for building automated tests in C++. Using Meson, the libraries may be readily incorporated into existing projects.<br \/>Moreover, Google Test provides several basic assertion writing options. You can also use Log messages and scoped traces to provide additional information to tests. Furthermore, the framework allows for the examination of more complicated problems like exceptions and aborts.<br \/>The frameworks&#8217; most significant flaw is their lack of support for asynchronous functionality testing. Users on various platforms may face problems since Google Test is not considered a Threadsave.<\/p><p>References:<\/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\" data-e-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\" data-e-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-e-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-e-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-e-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\">See other articles:<\/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-e-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\tCapacitance Preservation: Strategies for DC Bias 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>Is the capacitance of the capacitor always same? Multilayer ceramic capacitors (MLCCs) offer several advantages that make them a popular choice for various electronic<\/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>\n\t\t","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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"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 v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\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\\\/wp-content\\\/litespeed\\\/avatar\\\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026d74f854e583408c7b4c25cd80a0a689e\",\"url\":\"https:\\\/\\\/digitalgateamg.com\\\/wp-content\\\/litespeed\\\/avatar\\\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026\",\"contentUrl\":\"https:\\\/\\\/digitalgateamg.com\\\/wp-content\\\/litespeed\\\/avatar\\\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026\",\"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\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026d74f854e583408c7b4c25cd80a0a689e","url":"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026","contentUrl":"https:\/\/digitalgateamg.com\/wp-content\/litespeed\/avatar\/46f85298923a63b5939c9a06d38c2790.jpg?ver=1787740026","caption":"Digital Gate"}}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/digitalgateamg.com\/wp-content\/uploads\/2022\/05\/Frame-4-1-1.png","_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":31,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/revisions"}],"predecessor-version":[{"id":12999,"href":"https:\/\/digitalgateamg.com\/de\/wp-json\/wp\/v2\/posts\/8752\/revisions\/12999"}],"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}]}}