单元测试的条件可见性

时间:2018-08-16 20:23:37

标签: unit-testing rust

我正在建立一个用于读取和写入文件格式的板条箱。读取是通过nom解析器组合器完成的。结果,我有很多小的解析器方法,例如:

named!(read_prop_fs<&[u8], PropChunk>, do_parse!(
    tag!("FS  ") >>
    size: be_u64 >>
    fs: be_u32   >>
    (PropChunk { id: PropId::FS(fs), size: size })
));

解析器函数位于io::input::internal中,并且都是私有的。他们使用的大多数数据类型也是该模块专用的。

我要测试的文件编写器代码在io::output::internal中。理想情况下,我想在编写器的单元测试中使用解析器功能。

使用所有这些方法和类型pub甚至是crate看起来很丑。倒置模块似乎也很奇怪,等效于io::internal::{input, output},其中inputoutput最终是pub并代表包装箱API。

有没有办法做这样的事情?

  

#[cfg(test)]为true时,当前模块中的默认可见性应为crate,否则默认值应为private。

如果没有,是否存在一种典型的,符合人体工程学的解决方法?

0 个答案:

没有答案