Update testing.md

This commit is contained in:
黄朝晖 2019-11-14 01:14:29 +08:00 committed by GitHub
parent 7af6490a94
commit bd672e347f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -204,17 +204,17 @@ composer test -- --filter=testUserDaoFirst
## 测试替身
Gerard Meszaros 在 Meszaros2007 中介绍了测试替身的概念:
`Gerard Meszaros``Meszaros2007` 中介绍了测试替身的概念:
有时候对被测系统(SUT)进行测试是很困难的,因为它依赖于其他无法在测试环境中使用的组件。这有可能是因为这些组件不可用,它们不会返回测试所需要的结果,或者执行它们会有不良副作用。在其他情况下,我们的测试策略要求对被测系统的内部行为有更多控制或更多可见性。
有时候对 `被测系统(SUT)` 进行测试是很困难的,因为它依赖于其他无法在测试环境中使用的组件。这有可能是因为这些组件不可用,它们不会返回测试所需要的结果,或者执行它们会有不良副作用。在其他情况下,我们的测试策略要求对被测系统的内部行为有更多控制或更多可见性。
如果在编写测试时无法使用(或选择不使用)实际的依赖组件(DOC),可以用测试替身来代替。测试替身不需要和真正的依赖组件有完全一样的的行为方式;他只需要提供和真正的组件同样的 API 即可,这样被测系统就会以为它是真正的组件!
下面展示分别通过构造函数注入依赖、通过 inject 注释注入依赖的测试替身
下面展示分别通过构造函数注入依赖、通过 `@Inject` 注释注入依赖的测试替身
### 构造函数注入依赖的测试替身
```
```php
<?php
namespace App\Logic;
@ -240,10 +240,9 @@ class DemoLogic
return $result;
}
}
```
```
```php
<?php
namespace App\Api;
@ -257,10 +256,9 @@ class DemoApi
];
}
}
```
```
```php
<?php
namespace HyperfTest\Cases;
@ -303,12 +301,11 @@ class DemoLogicTest extends HttpTestCase
return $container;
}
}
```
### 通过 inject 注释注入依赖的测试替身
### 通过 Inject 注释注入依赖的测试替身
```
```php
<?php
namespace App\Logic;
@ -333,7 +330,7 @@ class DemoLogic
}
```
```
```php
<?php
namespace App\Api;
@ -347,10 +344,9 @@ class DemoApi
];
}
}
```
```
```php
<?php
namespace HyperfTest\Cases;
@ -398,5 +394,4 @@ class DemoLogicTest extends HttpTestCase
return $container;
}
}
```