Overmocked: Was tun, wenn Mocks in Unit Tests zur Bürde werden
Unit Tests sollen uns bei Änderungen vom Code vor Fehlern schützen. Mocks sind dabei oft kontraproduktiv und lassen Tests fehlschlagen, obwohl der geänderte Code korrekt ist. Um dies zu verhindern, ist der richtige Einsatz von Mocks wichtig.
Speaker: Stefan Wüthrich, Noser Engineering AG
Unit Tests sind aus der Softwareentwicklung nicht mehr wegzudenken. Sie sollen uns bei zukünftigen Änderungen am Code vor Fehlern schützen. Mocking-Bibliotheken nehmen in vielen Unit Tests eine tragende Rolle ein. Mit ihnen lassen sich Tests feingranular instrumentalisieren. Der Preis dafür ist aber hoch: Die Unit Tests sind nun sehr eng an den zu testenden Code gekoppelt. Oft führen selbst kleinste Änderungen am Code dazu, dass ein Grossteil der Tests fehlschlägt. Diese Tests bieten nun keine Sicherheit mehr und sind somit nutzlos geworden. Doch es gibt Hoffnung: Der richtige Umgang mit Stubs, Fakes und Mocks ermöglicht robuste Unit Tests, die auch ein Refactoring überstehen.