Upgrade to Pro — share decks privately, control downloads, hide ads and more …

snapshot testing (laraconus)

snapshot testing (laraconus)

Freek Van der Herten

July 25, 2017
Tweet

More Decks by Freek Van der Herten

Other Decks in Programming

Transcript

  1. A practical intro to
    snapshot testing

    View Slide

  2. Pronouncing Dutch
    Michael

    3/10
    Jacob

    1/10

    View Slide

  3. Pronouncing Dutch
    Michael

    9/10
    Jacob

    9/10

    View Slide

  4. Drake

    View Slide

  5. Frake

    View Slide

  6. Pronouncing Dutch: Spatie
    Spa Sea

    View Slide

  7. LET’S TALK SNAPSHOT TESTING

    View Slide

  8. A file on disk, let’s call in snapshot
    Test succeeds if output matches snapshot
    If not, test will fail
    What?

    View Slide

  9. Old name: characterization testing
    Popularized by Facebook
    Jest
    Testing interfaces
    Where does it come from?

    View Slide

  10. https://github.com/spatie/phpunit-snapshot-assertions
    assertMatchesSnapshot
    assertMatchesJsonSnapshot
    assertMatchesXmlSnapshot
    How can we do it in PHP?

    View Slide

  11. DEMO

    View Slide

  12. WRAPPING UP

    View Slide

  13. Advantages
    Very easy to get started with
    Can be used to validate complex output
    Easily update all the tests in one go

    View Slide

  14. Disadvantages
    Brittle
    Hard to pinpoint exact point of failure
    Bugs can be easily written in the snapshots

    View Slide

  15. https://github.com/spatie/phpunit-snapshot-assertions
    https://sebastiandedeyne.com/posts/2017/a-package-for-snapshot-
    testing-in-phpunit
    https://murze.be/2017/04/practical-introduction-snapshot-testing/
    https://www.sitepoint.com/snapshot-testing-viable-php/
    https://facebook.github.io/jest/docs/snapshot-testing.html
    Interesting links

    View Slide

  16. Thank you!
    https://speakerdeck.com/freekmurze/snapshot-testing-laraconus
    https://spatie.be/opensource
    https://murze.be
    https://murze.be/newsletter/

    View Slide

  17. QUESTIONS?

    View Slide