Test::MockObject states (not so sure whether it's relevant to your case):
If you use fake_module() to mock a module that already exists in memory -- one you've loaded elsewhere perhaps, but do not pass any subroutines to mock, this method will throw an exception. This is because if you call the constructor later on, you probably won't get a mock object back and you'll be confused.
What happens if you try
can_ok($module,'new');
can_ok($module,'load');
my $gq=Games::QuizTaker->new(filename=>'t/testqa');
$gq->load;
instead?