rust-i2cdev
rust-i2cdev copied to clipboard
Switch to mockall #[cfg_attr(test, automock)] on trait
Why this crate implements a proper way of mocking the protocol? It would be much more flexible, for unit test purposes, to provide to the end user the possibility to describe the trait mocked method behaviour using the mockall crate pattern
For unit test purposes, it would make sense to add also a method named read_regs to I2CRegisterMap? It would make easy to perform comparison after i2c writing operations. Maybe something like this could make sense
/// Read several registers starting from the given offset till offset+len
pub fn read_regs(&mut self, offset: usize, len: usize) -> Vec<u8> {
println!("READ | 0x{:X} : {:?}", offset, self.registers[offset+1..offset+len]);
self.registers[offset+1..offset+len].to_vec()
}