How to mock an activatedRoute parent Route in angular2 for testing purposes? : <p>Let's say I have this</p>

<pre><code>export class QuestionnaireQuestionsComponent {

    questions: Question[] = [];
    private loading:boolean = true;


    constructor(
        private route: ActivatedRoute,
        public questionnaireService:QuestionnaireService) {}

    ngOnInit(){
        this.route.parent.params.subscribe((params:any)=&gt;{
            this.questionnaireService.getQuestionsForQuestionnaire(params.id).subscribe((questions)=&gt;{
                this.questions = questions;
                this.loading = false;
            });
        });
    }


}
</code></pre>

<p>My component is actually working pretty well. Problem is that I want to unit test it but I can't figure out how to mock the <code>this.route.parent</code> object. Here's my test that fails</p>

<pre><code>beforeEach(()=&gt;{
    route = new ActivatedRoute();
    route.parent.params = Observable.of({id:"testId"});

    questionnaireService = jasmine.createSpyObj('QuestionnaireService', ['getQuestionsForQuestionnaire']);
    questionnaireService.getQuestionsForQuestionnaire.and.callFake(() =&gt; Observable.of(undefined));
    component = new QuestionnaireQuestionsComponent(route, questionnaireService);
});


describe("on init", ()=&gt;{
    it("must call the service get questions for questionnaire",()=&gt;{
        component.ngOnInit();
        expect(questionnaireService.getQuestionsForQuestionnaire).toHaveBeenCalled();
    });  
});
</code></pre>

<p>The test fails with this error </p>

<pre><code>TypeError: undefined is not an object (evaluating 'this._routerState.parent') 
</code></pre>
