I'm reading TDD book by Grenning, but I don't know if it is really up-to-date.
Do you use unit tests, automatic testing and/or TDD approach in your embedded projects? Which tools do you really use?
Writing some tests for isolated units is very simple, they can be manually written with some asserts. When the unit is connected to other units (i.e., uses services from another module or control a driver) this is much more complex and I understood you need to write some mocks in the tests. In this case, manually writing mocks without using any tools can be cumbersome.
What do you think of ceedling, that is Unity + Cmock + CException?
Do you usually run tests on simulator/emulator on development machine or directly on the target board?
Could you suggest books (or online resources) on unit testing in general, not strictly related to embedded?
Another question. Usually tests are software that checks other software (the final application). They can be run automatically if the build system is well organized. What about when you need to test the firmware/hardware? For example, how do you test a SPI GPIO expander driver? The only way to test if the driver is able to pull high or low a pin on the expander is to inspect the voltage with a voltmeter. Of course this isn't automatic.