I generally view unit tests as white box tests. You want the tests to generally focus on what the thing is supposed to do and now how it does it, but it's okay to cheat a little to make sure you can verify the behavior easily. Opinions definitely vary on this, though.