Skip to content

About

Snapshot testing for Java, Kotlin, and the JVM

Topics

Resources

Code of conduct

Contributing

Stars

103 stars

Watchers

2 watching

Forks

Repository files navigation

selfie-lib: snapshot testing for Python and JVM

Moved: this library now lives at diffplug/selfie-lib, with docs at lib.selfie.dev. Maven and PyPI coordinates and the API are unchanged, so you don't need to change anything. Read the announcement.

gif demo of selfie in action

Key features

  • Just add a test dependency (py, jvm), zero setup, zero config.
  • Snapshots can be inline literals or on disk.
  • Use expect_selfie for testing or cache_selfie for memoizing expensive API calls.
  • Disk snapshots are automatically garbage collected when the test class or test method is removed.
  • Snapshots are just strings. Use html, json, markdown, whatever. No magic serializers.
  • Record multiple facets of the entity under test, e.g. for a web request...
    • store the HTML as one facet
    • store HTML-rendered-to-markdown as another facet
    • store cookies in another facet
    • assert some facets on disk, others inline
    • see gif above for live demo, detailed example here

Python and JVM ports are both production-ready.

Documentation

Contributing

PRs welcome! Horror stories and glory stories too, share your experience! See CONTRIBUTING.md.

Acknowledgements

Heavily inspired by origin-energy's java-snapshot-testing, which in turn is heavily inspired by Facebook's jest-snapshot.

About

Snapshot testing for Java, Kotlin, and the JVM

Topics

Resources

Code of conduct

Contributing

Stars

103 stars

Watchers

2 watching

Forks

Used by

Contributors

Languages