Function smart_config::testing::test  
source · pub fn test<C: DeserializeConfig>(
    sample: impl ConfigSource,
) -> Result<C, ParseErrors>Expand description
Tests config deserialization from the provided sample. Takes into account param aliases,
performs sample preprocessing etc.
§Errors
Propagates parsing errors, which allows testing negative cases.
§Examples
§Basic usage
use smart_config::{metadata::SizeUnit, testing, ByteSize};
#[derive(DescribeConfig, DeserializeConfig)]
struct TestConfig {
    #[config(default_t = true)]
    flag: bool,
    #[config(with = SizeUnit::MiB)]
    size_mb: ByteSize,
}
let sample = smart_config::config!("size_mb": 2);
let config: TestConfig = testing::test(sample)?;
assert!(config.flag);
assert_eq!(config.size_mb, ByteSize(2 << 20));§Testing errors
#[derive(Debug, DescribeConfig, DeserializeConfig)]
struct TestConfig {
    #[config(default_t = true, alias = "flag")]
    boolean: bool,
}
let sample = smart_config::config!("flag": "no");
let err = testing::test::<TestConfig>(sample).unwrap_err();
let err = err.first();
assert_eq!(err.path(), "boolean");
assert!(err
    .inner()
    .to_string()
    .contains("provided string was not `true` or `false`"));