Поиск…
Проверить функцию
fn to_test(output: bool) -> bool {
output
}
#[cfg(test)] // The module is only compiled when testing.
mod test {
use super::to_test;
// This function is a test function. It will be executed and
// the test will succeed if the function exits cleanly.
#[test]
fn test_to_test_ok() {
assert_eq!(to_test(true), true);
}
// That test on the other hand will only succeed when the function
// panics.
#[test]
#[should_panic]
fn test_to_test_fail() {
assert_eq!(to_test(true), false);
}
}
( Игровая площадка )
Запуск с cargo test
.
Интеграционные тесты
lib.rs
:
pub fn to_test(output: bool) -> bool {
output
}
Каждый файл в папке tests/
скомпилирован как отдельный ящик. tests/integration_test.rs
extern crate test_lib;
use test_lib::to_test;
#[test]
fn test_to_test(){
assert_eq!(to_test(true), true);
}
Контрольные тесты
С помощью тестовых тестов вы можете тестировать и измерять скорость кода, однако эталонные тесты по-прежнему нестабильны. Чтобы включить тесты в вашем грузовом проекте, вам нужна ночная ржавчина, поставьте тесты интеграции на benches/
папку в корне вашего проекта Cargo и запустите cargo bench
.
Примеры из llogiq.github.io
extern crate test;
extern crate rand;
use test::Bencher;
use rand::Rng;
use std::mem::replace;
#[bench]
fn empty(b: &mut Bencher) {
b.iter(|| 1)
}
#[bench]
fn setup_random_hashmap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::HashMap::new();
b.iter(|| { map.insert(rng.gen::<u8>() as usize, val); val += 1; })
}
#[bench]
fn setup_random_vecmap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::VecMap::new();
b.iter(|| { map.insert((rng.gen::<u8>()) as usize, val); val += 1; })
}
#[bench]
fn setup_random_vecmap_cap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::VecMap::with_capacity(256);
b.iter(|| { map.insert((rng.gen::<u8>()) as usize, val); val += 1; })
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow