Other Types of Tests
Integration Tests
If you want to test your library as a client, use an integration test.
Create a .rs file under tests/:
// tests/my_library.rsuse my_library::init;#[test]fn test_init() {assert!(init().is_ok());}
These tests only have access to the public API of your crate.
Documentation Tests
Rust has built-in support for documentation tests:
#![allow(unused)]fn main() {/// Shortens a string to the given length.////// ```/// # use playground::shorten_string;/// assert_eq!(shorten_string("Hello World", 5), "Hello");/// assert_eq!(shorten_string("Hello World", 20), "Hello World");/// ```pub fn shorten_string(s: &str, length: usize) -> &str {&s[..std::cmp::min(length, s.len())]}}
- Code blocks in
///comments are automatically seen as Rust code. - The code will be compiled and executed as part of
cargo test. - Adding
#in the code will hide it from the docs, but will still compile/run it. - Test the above code on the Rust Playground.