title: FakeAsync/tick (Async/whenStable) vs detectChanges()
body: <p>Could you please help me differentiate those two things.</p>
  
  <p>According to my understanding, if you only work with observable, you can use detectChanges(). So you can change a component property directly or spy on a service call and return an observable, then you call detectChanges(), the changes will be available on html elements.</p>
  
  <p>But for [(ngModel)] on input fields you need to call tick() for the changes to be render on html element.</p>
  
  <p>So I'd it would be great if I know what they do and when to use what.</p>
  
  <p>Thanks in advance.</p>