This was an unusual topic to me at first while I have worked as firmware engineer for microcontrollers. Most of microctonroller applications are still developed in C or C++. In the past, while you developed something in C, you barely heard about unit testing. You needed to research a long time to set up a unit testing environment. At this moment, the most popular one might be Unity or CPPUtest, but they are not easy to use when the code has complex dependency upon each other because you need to create mock objects to your own manually. The importance of unit testing has been popular recently with newer high level languages such as Java and C#. Those languages have standard unit testing framework. Java has JUnit and Visual Studio provides a unit testing framework for C#. Unfortunately, C was developed before the rising popularity of unit testing and it did not come up with standard unit testing framework.