It is pretty common to write unit tests for functionality that doesn't exist (test driven development). It gets you to think about, and test, everything that needs to exist in the program before writing the program. This approach doesn't always work, particularly in large code bases where you need to learn the structure of a module before you can even think about design.
'Freezing the results' is ok too, as long as you know the results are currently correct. The AI has no way of knowing this and poor programmers often don't verify either.
It is very easy to write a shit test.