Skip to content

Instantly share code, notes, and snippets.

@nagkumar
Last active April 22, 2023 11:48
Show Gist options
  • Save nagkumar/308083a03d446fa6282e085d1ab91c90 to your computer and use it in GitHub Desktop.
Save nagkumar/308083a03d446fa6282e085d1ab91c90 to your computer and use it in GitHub Desktop.
Library Language Assertion Style Integration with Testing Frameworks IDE Integration Pros Cons
AssertJ Java Fluent checked checked Supports a wide range of assertions, easy to read and write Limited support for custom assertions
Hamcrest Java Matcher-based checked Provides a wide range of matchers, easy to read and write Can be verbose for some use cases
JUnit 5 Assertions Java Multiple styles (assertXXX(), fail()) checked checked Built-in to JUnit 5, easy to use, supports a wide range of assertions Limited to use with JUnit 5
Truth Java Fluent checked Easy to read and write, supports a wide range of assertions, good IDE integration Limited support for custom assertions
KotlinTest Kotlin Multiple styles (shouldXXX(), expectXXX()) checked checked Provides a wide range of assertions, easy to use, supports custom assertions Can be complex for some use cases
Scalatest Scala Multiple styles (assert(), expect(), should()) checked checked Good integration with testing frameworks, flexible Can be complex for some use cases
Fluent Assertions Java Fluent checked Easy to read and write, supports a wide range of assertions Limited support for custom assertions
Awaitility Java Wait and poll checked Easy to use for testing asynchronous code, supports custom matchers Limited to asynchronous testing
Atrium Kotlin/Java Fluent checked checked Easy to read and write, supports custom assertions, good integration with testing frameworks Limited support for integration with non-JVM languages
Strikt Kotlin Concise checked Easy to use, supports chaining multiple assertions together, good IDE integration Limited number of assertions compared to other libraries
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment