translate: testing.jade line 1130
This commit is contained in:
		
							parent
							
								
									8178d1abde
								
							
						
					
					
						commit
						77d7804b1e
					
				| @ -1001,7 +1001,7 @@ a#welcome-spec-setup | ||||
| :marked | ||||
|   Here's the complete, preferred `beforeEach`: | ||||
| 
 | ||||
|   这里是完整的,首选的`beforeEach`: | ||||
|   这里是完整的,推荐的`beforeEach`: | ||||
| +makeExample('testing/ts/app/welcome.component.spec.ts', 'setup', 'app/welcome.component.spec.ts')(format='.') | ||||
| :marked | ||||
|   下面是一些测试: | ||||
| @ -1025,59 +1025,108 @@ a(href="#top").to-top 回到顶部 | ||||
| a#component-with-async-service | ||||
| :marked | ||||
|   # Test a component with an async service | ||||
| 
 | ||||
|   # 测试一个有异步服务的组件 | ||||
|    | ||||
|   Many services return values asynchronously.  | ||||
|   Most data services make an HTTP request to a remote server and the response is necessarily asynchronous. | ||||
| 
 | ||||
|   许多服务异步返回值。大部分数据服务向远程服务器发起HTTP请求,响应必然是异步的。 | ||||
| 
 | ||||
|   The "About" view in this sample displays Mark Twain quotes. | ||||
|   The `TwainComponent` handles the display, delegating the server request to the `TwainService`. | ||||
|   Both are in the `app/shared` folder because the author intends to display Twain quotes on other pages someday. | ||||
|   Here is the `TwainComponent`. | ||||
| 
 | ||||
|   本例的`About`视图显示马克吐温的名言。 | ||||
|   `TwainComponent`组件处理显示、委派`TwainService`向服务器发起请求。 | ||||
|   两者都在`app/shared`目录里,因为作者计划将来在其他页面也显示马克吐温的名言。 | ||||
|   下面是`TwainComponent`: | ||||
| 
 | ||||
| +makeExample('testing/ts/app/shared/twain.component.ts', 'component', 'app/shared/twain.component.ts')(format='.') | ||||
| :marked | ||||
|   The `TwainService` implementation is irrelevant at this point. | ||||
|   It is sufficient to see within `ngOnInit` that `twainService.getQuote` returns a promise which means it is asynchronous. | ||||
| 
 | ||||
|   `TwainService`的实现细节现在并不重要。 | ||||
|   `ngOnInit`的`twainService.getQuote`返回一个承诺,所以显然它是异步的。 | ||||
| 
 | ||||
|   In general, tests should not make calls to remote servers.  | ||||
|   They should fake such calls. The setup in this `app/shared/twain.component.spec.ts` shows one way to do that:  | ||||
| 
 | ||||
|   一般来讲,测试不应该向远程服务器发请求。 | ||||
|   它们应该伪造这样的请求。`app/shared/twain.component.spec.ts`里的配置是其中一种伪造方法: | ||||
| 
 | ||||
| +makeExample('testing/ts/app/shared/twain.component.spec.ts', 'setup', 'app/shared/twain.component.spec.ts (setup)')(format='.') | ||||
| 
 | ||||
| a#service-spy | ||||
| :marked | ||||
|   ### Spying on the real service | ||||
| 
 | ||||
|   ### 刺探(Spy)真实服务 | ||||
| 
 | ||||
|   This setup is similar to the [`welcome.component.spec` setup](#welcome-spec-setup). | ||||
|   But instead of creating a fake service object, it injects the _real_ service (see the test module `providers`) and  | ||||
|   replaces the critical `getQuote` method with a Jasmine spy. | ||||
| 
 | ||||
|   本配置与[`welcome.component.spec` setup](#welcome-spec-setup)类似。 | ||||
|   但是与其伪造一个服务对象,它注入了真实的服务(参见测试模块的`providers`),并用一个Jasmine的`spy`替换关键的`getQuote`方法。 | ||||
| 
 | ||||
| +makeExample('testing/ts/app/shared/twain.component.spec.ts', 'spy')(format='.') | ||||
| :marked | ||||
|   The spy is designed such that any call to `getQuote` receives an immediately resolved promise with a test quote. | ||||
|   The spy bypasses the actual `getQuote` method and therefore will not contact the server. | ||||
| 
 | ||||
|   这个Spy的设计是,所有调用`getQuote`的方法都会收到立刻解析的承诺,得到一个预设的名言。Spy拦截了实际`getQuote`方法,所有它不会联系服务。 | ||||
| 
 | ||||
| .l-sub-section | ||||
|   :marked | ||||
|     Faking a service instance and spying on the real service are _both_ great options.  | ||||
|     Pick the one that seems easiest for the current test suite. Don't be afraid to change your mind. | ||||
| 
 | ||||
|     伪造一个服务实例和刺探真实服务都是好方法。挑选一个对当前测试套件最简单的方法。你可以随时改变主意。 | ||||
| 
 | ||||
| :marked | ||||
|   Here are the tests with commentary to follow: | ||||
| 
 | ||||
|   下面是接下来带有注解的测试: | ||||
| 
 | ||||
| +makeExample('testing/ts/app/shared/twain.component.spec.ts', 'tests', 'app/shared/twain.component.spec.ts (tests)') | ||||
| :marked | ||||
|   ### Synchronous tests | ||||
| 
 | ||||
|   ### 同步测试 | ||||
| 
 | ||||
|   The first two tests are synchronous.  | ||||
|   Neither test can prove that a value from the service will be displayed. | ||||
| 
 | ||||
|   前两个测试是同步的。它们都不能证明服务返回的值将会被显示。 | ||||
|    | ||||
|   Thanks to the spy, the second test verifies that `getQuote` is called.  | ||||
|   But the quote itself has not arrived, despite the fact that the spy returns a resolved promise. | ||||
| 
 | ||||
|   在Spy的帮助下,第二个测试验证了`getQuote`被调用了。 | ||||
|   虽然Spy返回了一个解析了的承诺,但是确没有收到名言。 | ||||
|    | ||||
|   This test must wait at least one full turn of the JavaScript engine, a least one "tick", before the | ||||
|   value becomes available. By that time, the test runner has moved on to the next test in the suite. | ||||
| 
 | ||||
|   这个测试必须等待JavaScript引擎一整个回合,至少一个"tick"后,返回值才会有效。这个时候,测试运行器已经移到了测试套件下一个测试。 | ||||
| 
 | ||||
|   The test must become an "async test" ... like the third test | ||||
| 
 | ||||
|   测试必须变成一个“异步测试”...就像第三个测试那样。 | ||||
| 
 | ||||
| a#async-fn-in-it | ||||
| :marked | ||||
|   ## The _async_ function in _it_ | ||||
| 
 | ||||
|   ## **it**里的**async**函数方法 | ||||
| 
 | ||||
|   Notice the `async` in the third test. | ||||
| 
 | ||||
|   注意第三个测试的`async`方法。 | ||||
|    | ||||
| +makeExample('testing/ts/app/shared/twain.component.spec.ts', 'async-test', 'app/shared/twain.component.spec.ts (async test)')(format='.') | ||||
| :marked | ||||
|   The `async` function is part of the _Angular TestBed_ feature set. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user