6 releases

0.2.3 Jul 5, 2023
0.2.2 Jul 5, 2023
0.1.2 Jul 1, 2023
0.1.1 Jun 28, 2023

#181 in Testing

Download history 6/week @ 2024-02-16 13/week @ 2024-02-23 56/week @ 2024-03-01 23/week @ 2024-03-08 2/week @ 2024-03-15 51/week @ 2024-03-29

78 downloads per month
Used in mistralai-client

MIT license

13KB
83 lines

Jrest

Crates.io Package Docs.rs Documentation Test Workflow Status Code Coverage

The equivalent of Jest for Rust.

Jrest is a testing framework project for Rust, inspired by Jest, easy to write and easy to read, with fancy diffs when tests fail.

⚠️ Be aware that this is a work in progress.

But it should get regular updates since I'm using it every week on my own open-source projects.



Installation

cargo add --dev jrest

Usage

.to_be()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!("A &str").to_be("A &str");
      expect!("A String".to_string()).to_be("A String".to_string());
  }
}

Primitives

.to_be_greater_than()

#[cfg(test)]
  mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!(3).to_be_greater_than(2);
  }
}

.to_be_greater_than_or_equal()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!(3).to_be_greater_than_or_equal(2);
      expect!(3).to_be_greater_than_or_equal(3);
  }
}

.to_be_less_than()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!(2).to_be_less_than(3);
  }
}

.to_be_less_than_or_equal()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!(2).to_be_less_than_or_equal(3);
      expect!(2).to_be_less_than_or_equal(2);
  }
}

Strings

.to_start_with()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!("cargo").to_end_with("go");
  }
}

.to_start_with()

#[cfg(test)]
mod tests {
  use jrest::expect;

  #[test]
  fn test_something() {
      expect!("cargo").to_start_with("car");
  }
}

Roadmap

  • .toContain()
  • .toHaveLength()
  • .toMatch()
  • .toMatchObject()
  • .toThrow()

Thanks

Dependencies

~390–590KB
~12K SLoC