I am wondering should I write unit test for everything. There are some classes is very difficult to write unit test. For example, I am writing some program for handling audi
Cheap answer: Test everything that could possibly break
Ultimately though you need to understand the business value of the tests you write - no different to any other effort you expend, any other codebase you commit yourself to maintaining.