I am looking for an example project (on GitHub) or tutorial:
How to write unit tests for STM32.
Can you recommend something?
How do I organize my project to build for
thumbv7m-none-eabi and test on
I am going to use embedded-hal-mock.
My example project: GitHub - hanusek/embedded-unit-tests
As long as the units under test do not depend directly on types that cannot be used on the host, you can put them into a platform-agnostic crate and run your tests directly on the host system (macOS, Linux, Windows, whatever) with
cargo test --package crate-name-here. The crate needs to be
#[no_std], but the test profile will pull in
std anyway. Put both crates into a Cargo workspace.
If you need to run tests on the embedded device itself for some reason, you might be able to use something like
defmt-test. This is really a "last resort" option, because setup is a real pain if you aren't already using
defmt. And it's a really weird way of doing something as pervasive as printing text.
Huh, well, ok. I don't know if you really need that kind of integration with unit tests. (That's integration testing, a different discipline.) Unit tests generally are for testing business logic. If your business logic is intermixed with platform integration, then your architecture is violating the principle of separation of concerns.