Expand description
This is a collection of types that implement the embedded-hal traits.
The implementations never access real hardware. Instead, the hardware is mocked or no-op implementations are used.
The goal of the crate is to be able to test drivers in CI without having access to hardware.
§Usage
The general approach for testing drivers using mocks:
- Define the expectations: A list of transactions (e.g. a read or write operation) that you expect the driver-under-test to invoke on the mocked hardware
- Instantiate the mock with the expectations
- Run the test code
- At the end of the test code, call the
.done()
method on the mock to ensure that all expectations were met
For more information, see module-level docs.
Note: Mocks contain an Arc
internally and can be cloned freely. This
means you can clone a mock before passing it to the driver, and then call
.done()
on the second mock instance without having to reclaim the first
instance from the driver.
§embedded_hal Version Support
This crate supports both version 0.x and version 1.x of embedded-hal. By
default only support for version 0.x is enabled. To enable support for
version 1.x, use the eh1
feature.
§Cargo Features
There are currently the following cargo features:
eh0
: Provide moduleeh0
that mocks embedded-hal version 0.x (enabled by default)eh1
: Provide moduleeh1
that mocks embedded-hal version 1.x (enabled by default)embedded-time
: Enable theeh0::timer
module (enabled by default)embedded-hal-async
: Provide mocks for embedded-hal-async ineh1