We should write unit test case in TDD/BDD approach. Most important thing is the code coverage and functionality developed.
What happens is developers do not write the whole sprectrum of possibles test scenerios. which is a major miss from his side.
For example, lets say we are going to test the login functionality of softwaretestingboard.com/qa/. Consider our test case be "If my credentials are correct log me in. Or else show an error message".
Now if the developer write the test case only for successful login, unit test will pass and code coverage will also be 100% but what about the incorrect password scenerio?
So a QA is required with unit tests.