Skip to content

ararog/caramelo

caramelo

Crates.io downloads crates.io Build Status Crates.io MSRV Documentation MIT licensed codecov

Caramelo (caramel in Portuguese, named after popular brazilian dog) is a comprehensive, production-ready unit testing framework for Rust with a focus on simplicity and ease of use.

Features

Several useful matchers:

  • logical: eq, ne, le, lt, ge and gt
  • range: in_to, in_inc
  • array: item, len, _in_
  • wildcard: any
  • string: contains, starts-with, ends-with

Assertion traits

  • is, is_eq, is_ne, is_lt, is_le, is_gt and is_ge

Quick Start

Add caramelo to your Cargo.toml:

caramelo = { version = "0.1.0" }

Usage Example

Here's how simple it is to create unit tests with caramelo:

use caramelo::{expect, matchers::eq, assertions::Is};

/// Test equality matcher

#[test]
fn test_equal() {
    expect(1).to_be(eq(1));
}

#[test]
#[should_panic(expected = "Expected 1 to be equals to 2")]
fn test_not_equal() {
    expect(1).to_be(eq(2));
}

/// Test is assertion

#[test]
fn test_is() {
    "a".is("a");
}

#[test]
#[should_panic(expected = "Expected a to be equal to b")]
fn test_is_panic() {
    "a".is("b");
}

Subprojects

Base crate for caramelo.

A crate with collection of convenience macros for caramelo.

License

Licensed under either of

at your option.

Author

Rogerio Pereira Araujo rogerio.araujo@gmail.com

About

Idiomatic unit test framework for rust

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE.md
MIT
LICENSE-MIT.md

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors