Skip to content

The equivalent of Jest for Rust.

License

Notifications You must be signed in to change notification settings

ivangabriele/jrest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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