anchor.diff:  
     * The `HeroDetailComponent` chain its expressions to this stub `params` _Observable_ which is now under the tester's control.
   
  -  * `HeroDetailComponent`链接这个stub类的表达式到它的`params`可观察对象，该对象现在被测试者所控制。
  +  * `HeroDetailComponent`链接它的表达式到这个stub类的`params`可观察对象，该对象现在被测试者的控制之下。
   
     * Setting the `testParams` property causes the `subject` to push the assigned value into `params`.
      That triggers the `HeroDetailComponent` _params_ subscription, described above, in the same way that navigation does.
  
positive.code:   While this app doesn't have a route to the `HeroDetailComponent` that omits the `id` parameter, it might add such a route someday. 
    The component should do something reasonable when there is no `id`.
  
    虽然本应用没有导航到`HeroDetailComponent`的缺少`id`参数的路由，将来它可能会添加这样的路由。
    当没有`id`时，该组件应该作出什么合理的反应。
  
    In this implementation, the component should create and display a new hero.
    New heroes have `id=0` and a blank `name`. This test confirms that the component behaves as expected:
  
    在本例中，组件应该创建和显示新英雄。
    新英雄的id为零，`name`为空。本测试程序确认组件是按照预期的这样做的：
  +makeExample('testing/ts/app/hero/hero-detail.component.spec.ts', 'route-no-id', 'app/hero/hero-detail.component.spec.ts (no id)')(format='.')
  :marked
  .callout.is-helpful
    :marked
      Inspect and download _all_ of the chapter's application test code with this <live-example plnkr="app-specs">live example</live-example>.
      
      到<live-example plnkr="app-specs">在线例子</live-example>查看和下载**所有**本章应用测试代码。
  
  .l-hr
  
  
negative.code:   Stubbing the `ActivatedRoute` would follow the same pattern except for a complication:
    the `ActivatedRoute.params` is an _Observable_.
  
    现在，你已经知道如何模拟`Router`和数据服务。
    模拟`ActivatedRoute`遵循类似的模式，但是有个额外枝节：`ActivatedRoute.params`是**可观察对象**。
  
  #stub-observable
  