SIGS DATACOM Fachinformationen für IT-Professionals

SOFTWARE MEETS BUSINESS:
The Conference for Software Architecture
Munich, 05 February - 09 February 2018

Sessionsdetails

Talk: Mi 7.3
Date: Wed, 07.02.2018
Time: 14:30 - 15:30
cart

Mocking Frameworks considered harmful (especially in C++)

Time: 14:30 - 15:30
Talk: Mi 7.3

 

Software development without test automation can no longer be considered professional. Testing existing code requires test stubs. Employing Mocking Frameworks to replace dependencies is popular, but can lead to less-than-optimal designs, because dependencies between components no longer hurt as much when writing test cases. Especially in the context of C++ - lacking reflection capabilities - mocking frameworks tend to rely on unsafe mechanisms and obfuscated test case code. This talk demonstrates the liabilities and shows an alternative for C++.

Target Audience: Developers, Architects
Prerequisites: development experience, basic C++ knowledge
Level: Introductory

Extended Abstract
Software development without test automation can no longer be considered professional. However, you might have existing code bases or want to rely on external libraries that may make writing effective and fast unit tests hard or even near to impossible. A typical work-around for these situations is to introduce test stubs for such external dependencies to make your code testable.
Some propose to use mocking frameworks, such as GoogleMock, together with unit testing frameworks to ease the specification of the replacement objects. These mocking frameworks often come with their own domain-specific language (DSL) to describe the behavior and expected usage of the mock object. In addition to a learning curve, the DSLs often do not help much, when things do not work. The current lack of standardized reflection in addition requires macro trickery making fixing problems even harder. A second issue, is that existing code often must be prepared to suite the mocking frameworks interception mechanism to allow to inject the mock objects. Last but not least test-driven development (TDD) together with the use of a mocking framework can lead to high coupling, that TDD usually strives to reduce.

 

Sponsoren der OOP 2018

  • Ab Initio Software Germany GmbH Bronze Sponsor
  • adesso AG Bronze Sponsor
  • agile42 GmbH Bronze Sponsor
  • andrena objects ag Silver Sponsor
  • AppDynamics Silver Sponsor
  • Atlassian Gold Sponsor
  • Axway GmbH Bronze Sponsor
  • Bitkom e.V. Partner
  • Capgemini Bronze Sponsor
  • German Testing Board e.V. Gold Sponsor
  • innoQ Deutschland GmbH Bronze Sponsor
  • Intel Software Gold Sponsor
  • ITech Progress GmbH Silver Sponsor
  • iteratec GmbH Bronze Sponsor
  • NovaTec Consulting GmbH Bronze Sponsor
  • OPEN KNOWLEDGE GmbH Bronze Sponsor
  • OPITZ CONSULTING GmbH Bronze Sponsor
  • Saxonia Systems AG Bronze Sponsor
  • Servicetrace GmbH Bronze Sponsor
  • TDWI Europe e.V. Partner
  • XebiaLabs Bronze Sponsor