I have never worked at a company that used it, but in trying to use it on my own, I ran into various problems. One was that your tests are supposed to test features in isolation. How to do you test that you successfully added an object to a database without using your function to read that object from the database? TDD tutorials usually use bullshit calculator examples which are great if you want to write tests for functions that just return some output for a given input, but not that useful in the above scenario. Also, it is difficult to isolate static functions from the functions that use them. You pretty much have to use some sort of singleton which contains what would otherwise be your static functions and inject a mock version into the code under testing which gets very cumbersome. Are these solved problems that I don’t know about?