Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Beginner-Friendly Projects
  3. Atrium

Atrium

EUPL-1.2Kotlinv1.2.0

A multiplatform expectation library for Kotlin with fluent APIs, extensible design, and detailed failure reporting.

Visit WebsiteGitHubGitHub
629 stars229 forks0 contributors

What is Atrium?

Atrium is a multiplatform expectation library for Kotlin that provides a fluent API for writing assertions in tests. It helps developers write expressive and readable test expectations with detailed failure messages, making it easier to understand why a test failed. The library supports JVM, JS, and Android, and is designed to be extensible, allowing customizations and integrations.

Target Audience

Kotlin developers writing tests for multiplatform projects (JVM, JS, Android) who want expressive assertion syntax and clear failure reporting. It's especially useful for teams adopting Kotlin for cross-platform development.

Value Proposition

Developers choose Atrium for its detailed failure messages, multiplatform support, and extensible design. Unlike other assertion libraries, it offers both fluent and infix APIs, sophisticated collection expectations, and the ability to customize or extend core functionality.

Overview

A multiplatform expectation library for Kotlin

Use Cases

Best For

  • Writing expressive and readable assertions in Kotlin tests
  • Multiplatform Kotlin projects targeting JVM, JS, and Android
  • Tests requiring detailed failure messages to debug issues quickly
  • Projects needing custom assertion functions or reporting
  • Data-driven testing with grouped expectations
  • Testing collections with complex containment or ordering rules

Not Ideal For

  • Projects stuck on Kotlin versions below 1.4 or JVM below 11, due to Atrium's strict minimum requirements.
  • Teams writing tests primarily in Java, as nullable type handling and Kotlin interoperability can be cumbersome.
  • Simple test suites where basic assertion libraries like JUnit 5 or kotlin-test suffice, avoiding Atrium's builder pattern complexity.

Pros & Cons

Pros

Multiplatform Kotlin Support

Works on JVM, JS, and Android with a single codebase, enabling consistent testing across platforms, as stated in the GitHub description and installation guide.

Clear Failure Reporting

Provides structured error messages that show the subject, expected values, and mismatches explicitly, making debugging easier, demonstrated throughout the README examples.

Extensible Architecture

Allows adding custom expectation functions or replacing core components, offering flexibility for advanced use cases, per the project's philosophy and extensibility sections.

Sophisticated Collection Testing

Includes builders for complex containment checks with options like inOrder and inAnyOrder, enabling detailed collection assertions, as shown in the collection expectations examples.

Cons

Steep Learning Curve

The fluent API and builder patterns, while expressive, require significant time to master and can overwhelm new users, evident from the extensive documentation and multiple API styles.

Kotlin Version Lock-in

Requires Kotlin 1.4+ and drops support for legacy JS backends, potentially blocking adoption in projects with older toolchains, as noted in the installation requirements.

Reflection Ambiguity Issues

Users may encounter Kotlin bugs causing ambiguous overloads when using feature extraction with reflection, admitted in the FAQ under 'ambiguity problems', leading to compile-time errors.

Open Source Alternative To

Atrium is an open-source alternative to the following products:

A
AssertJ

AssertJ is a Java library providing fluent assertions for testing, making test code more readable and easier to write.

Frequently Asked Questions

Quick Stats

Stars629
Forks229
Contributors0
Open Issues44
Last commit3 days ago
CreatedSince 2017

Tags

#hacktoberfest#unit-testing#assert#android#multiplatform#assertions#fluent-api#kotlin-multiplatform#testing#jvm#javascript#test-framework#kotlin#assertion-library

Built With

K
Kotlin
M
Maven
G
Gradle

Links & Resources

Website

Included in

Beginner-Friendly Projects84.2k
Auto-fetched 8 hours ago

Related Projects

OpenCalcOpenCalc

A simple and beautiful calculator for Android downloaded more than 300k times

Stars1,488
Forks184
Last commit13 days ago
Non-Blocking SirixDB HTTP(S)-ServerNon-Blocking SirixDB HTTP(S)-Server

SirixDB is an an embeddable, bitemporal, append-only database system and event store, storing immutable lightweight snapshots. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach.

Stars1,210
Forks249
Last commit12 hours ago
HexagonHexagon

ARCHIVED REPOSITORY. Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications or APIs) that run inside a cloud platform.

Stars618
Forks100
Last commit16 days ago
Scribe-AndroidScribe-Android

Scribe-Android: Keyboards for language learners & Conjugate-Android: Wikidata based verb conjugation app

Stars96
Forks119
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub