@@ -154,10 +154,10 @@ protected function setUp(): void
154
154
155
155
156
156
### 对错误进行测试
157
- 默认情况下,` PHPUnit ` 会将 ` PHP ` 错误、警告和通知都转化为异常,在上一篇 PHP 编排文件 phpunit.xml 中我们提到,Laravel 也默认配置为做这些转化,所以我们可以通过测试异常的方式对业务代码中的错误进行测试。具体用法和异常测试一样,就不再赘述了。
157
+ 默认情况下,` PHPUnit ` 会将 ` PHP ` 错误、警告和通知都转化为异常,在上一篇 ` PHP ` 编排文件 ` phpunit.xml ` 中我们提到,` Laravel ` 也默认配置为做这些转化,所以我们可以通过测试异常的方式对业务代码中的错误进行测试。具体用法和异常测试一样,就不再赘述了。
158
158
159
159
### 测试的依赖关系
160
- 有的时候,我们需要测试的两个用例之间可能有依赖关系,比如我们在 TestService 定义如下个方法:
160
+ 有的时候,我们需要测试的两个用例之间可能有依赖关系,比如我们在 ` TestService ` 定义如下个方法:
161
161
162
162
```
163
163
protected $stack = [];
@@ -178,7 +178,7 @@ public function getStackSize()
178
178
}
179
179
```
180
180
181
- 我们在测试 stackContains 方法时,往往要先调用 init 方法,但是在单元测试中,每个方法都有独立的测试用例,如果多次调用有可能会对数据造成污染,那我们能否在 init 方法测试用例的运行基础上运行 stackContains 方法的测试用例呢?这个时候,我们说这两个测试用例之间是具有依赖关系的,PHPUnit 中通过 @depends 注解对这种依赖关系进行了支持,我们可以在 Unit\ExampleTest 中编写测试用例如下:
181
+ 我们在测试 ` stackContains ` 方法时,往往要先调用 ` init ` 方法,但是在单元测试中,每个方法都有独立的测试用例,如果多次调用有可能会对数据造成污染,那我们能否在 ` init ` 方法测试用例的运行基础上运行 ` stackContains ` 方法的测试用例呢?这个时候,我们说这两个测试用例之间是具有依赖关系的,` PHPUnit ` 中通过 ` @depends ` 注解对这种依赖关系进行了支持,我们可以在 ` Unit\ExampleTest ` 中编写测试用例如下:
182
182
183
183
```
184
184
public function testInitStack()
@@ -200,10 +200,10 @@ public function testStackContains(TestService $service)
200
200
}
201
201
```
202
202
203
- 在 testStackContains 用例中,我们将 testInitStack 用例返回的 $service 实例传递进来,并在此基础上进行测试。
203
+ 在 ` testStackContains ` 用例中,我们将 ` testInitStack ` 用例返回的 ` $service ` 实例传递进来,并在此基础上进行测试。
204
204
205
205
### 数据提供器
206
- 除了支持测试用例之间的依赖之外,PHPUnit 还可以通过 @dataProvider 注解为多个测试用例提供初始化数据:
206
+ 除了支持测试用例之间的依赖之外,` PHPUnit ` 还可以通过 ` @dataProvider ` 注解为多个测试用例提供初始化数据:
207
207
208
208
```
209
209
public function initDataProvider()
@@ -227,9 +227,9 @@ public function testIsStackContains()
227
227
}
228
228
```
229
229
230
- 在这个测试用例中,我们通过 initDataProvider 方法作为数据提供器,数据供给器方法必须声明为 public,其返回值要么是一个数组,其每个元素也是数组;要么是一个实现了 Iterator 接口的对象,在对它进行迭代时每步产生一个数组。每个数组都是测试数据集的一部分,将以它的内容作为参数来调用测试方法。
230
+ 在这个测试用例中,我们通过 ` initDataProvider ` 方法作为数据提供器,数据供给器方法必须声明为 ` public ` ,其返回值要么是一个数组,其每个元素也是数组;要么是一个实现了 ` Iterator ` 接口的对象,在对它进行迭代时每步产生一个数组。每个数组都是测试数据集的一部分,将以它的内容作为参数来调用测试方法。
231
231
232
- 然后我们在需要用到这个数据提供器的测试用例上用 @dataProvider 注解进行声明,在这个示例中我们迭代数据提供器数组,将其中的数据作为参数传入 TestService 的 stackContains 方法以判断对应值在 stack 属性中是否存在。
232
+ 然后我们在需要用到这个数据提供器的测试用例上用 ` @dataProvider ` 注解进行声明,在这个示例中我们迭代数据提供器数组,将其中的数据作为参数传入 ` TestService ` 的 ` stackContains ` 方法以判断对应值在 ` stack ` 属性中是否存在。
233
233
234
234
以下是上述用例运行结果:
235
235
0 commit comments