first off, if it works and does what you want it to do, then it's good!
then, I'd suggest something like this:
/** @test */
public function quiz_and_question_are_shown()
{
$quiz = factory(Quiz::class)->create(['description' => 'Awesome Quiz']);
$quiz->questions()->save(factory(Question::class)->make(['body' => 'who\'s there?']));
$quiz->questions()->save(factory(Question::class)->make(['body' => 'how much?']));
// no need for this - it tests laravel itself:
// $this->assertInstanceOf(Collection::class, $quiz);
$this->get($quiz->id.'/quiz')
// no need - you care here about the end result not view filename
// ->assertViewIs('pages.quizDetails')
->assertStatus(200)
->assertSee('Awesome Quiz')
->assertSee('who\'s there?');
->assertSee('how much?');
}
This requires a bit more typing, yes. But it makes tests a bit easier to understand in a long run. Limiting indirection is a good thing, that future you will thank you for.