rust-i2cdev icon indicating copy to clipboard operation
rust-i2cdev copied to clipboard

Switch to mockall #[cfg_attr(test, automock)] on trait

Open SpAndrea117 opened this issue 1 year ago • 1 comments

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

SpAndrea117 avatar May 23 '24 14:05 SpAndrea117

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()
}

SpAndrea117 avatar May 31 '24 17:05 SpAndrea117