I've started mentoring a junior developer. I've read the community wiki on how to mentor and have been following many of the suggestions in there. The developer has a couple years experience, mostly with modifying existing programs or transitioning code from our legacy system to our new system (a lot of cut and paste).
I'm teaching her about our infrastructure which has much more complex programming inside of it, eg: reflection, pointers, multi-threading, dynamic objects. Once I have explained to her what needs to be done she is able to write working code, usually copying similar code and modifying it.
I'm concerned that she doesn't understand why or how the code is doing what it is doing. When I ask her to explain the code to me she usually paraphrases the requirements that I originally gave her.
So my question is: how can I measure how well she actually understands the business logic and programming structures being used? What should I be asking, what should I be looking for?