The more complex the data and the more complex the test code, the harder it is to have a clear reliable unit test.<p>How do you ensure the tests themselves are accurate? Adding test cases as you encounter errors from newly revealed edge cases means the test didn’t work initially. Unit testing the unit tests is circular logic. You can manually test the unit test, same as you could manually test the code itself.<p>Typically, unit tests are so simple that bugs are few and easy to spot so this is a non issue, but that same argument can also be made for when the code itself does not need unit tests under the same circumstances.