title: async function test with Observable.delay in Angular Unit test not working
body: <p>This is my mock Service and it is written with 10ms delay:</p>
  
  <pre><code>class MockHttp {   
    post(url, body, option): Observable&lt;Response&gt; {
      let resOpt = new ResponseOptions({
        body: JSON.stringify({success: true})
      });
      let res: Response = new Response(resOpt);
      return Observable.of(res).delay(10);
    }
  }
  </code></pre>
  
  <p>And here is my test case.</p>
  
  <pre><code>it('http post should get valid response without any param', fakeAsync(() =&gt; {
      let retVal = null;
      // note this is just blackbox testing. httpHelperSerivce.post() function is wrapper of http.post(p1, p2, p3), 
      httpHelperService.post('url', {a: 'a'}).subscribe(res =&gt; {
        console.log(res);
        retVal = res;
      });
      tick();
      expect(retVal).toEqual({success: true});
      discardPeriodicTasks();
    }));
  </code></pre>
  
  <p>The test does not wait for delay. Without delay it works.</p>
  
  <p>Is there anything wrong to my code? Delay on <code>MockHttp</code> is out of current zone?</p>