I was just in the process of writing unit tests which perform white-box testing. That is, I am testing public methods in a class and by implication of the results testing logic in the private methods they call.
I do this by changing inputs to the public method being unit tested and testing expected outputs that are determined or mutated by logic in the supporting private methods, the implementation of which, my "unit tests" need know nothing about.
So, there is nothing stopping you performing black box testing on unit tests and the tests will break if someone messes with the implementation of the hidden supporting logic. In fact, this seems like a superior, more efficient, approach than white box unit testing everything. I'm with the professor.