File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 1
1
## 25. 2019-06-10-Laravel 基于 PHPUnit 的单元测试
2
-
2
+ ![ ] ( )
3
3
### 简介
4
4
介绍完 ` PHPUnit ` 的基本使用和 ` Laravel ` 框架自带的编排文件 ` phpunit.xml ` 文件,今天开始我们正式准备在 ` Laravel ` 项目中基于 ` PHPUnit ` 编写单元测试和功能测试,通过上篇教程介绍的编排文件我们知道,` Laravel ` 的单元测试用例位于 ` tests/Unit ` 目录下,框架本身也为我们提供了一个示例测试文件 ` ExampleTest.php ` :
5
5
@@ -58,7 +58,7 @@ public function testVariables()
58
58
相应的断言用途在注释中已经说明了,我们可以对各种类型的变量从各种维度进行断言,甚至还可以对文件、目录、正则表达式进行断言,并且很多断言都可以从正反两个方法进行,相关的调用都很简单,你可以在需要的时候查看官方文档选择相应的断言方法:[ https://phpunit.readthedocs.io/zh_CN/latest/assertions.html ] ( https://phpunit.readthedocs.io/zh_CN/latest/assertions.html ) 。
59
59
60
60
运行上面的测试用例,结果如下,每个测试方法都代表一个测试用例,所以上面的单元测试包含两个测试用例,7 个断言:
61
-
61
+ ![ ] ( https://laravelacademy.org/wp-content/uploads/2019/04/bf994a00b10110aafad3ba8a7c71183b.jpg )
62
62
63
63
64
64
### 对输出进行测试
@@ -82,7 +82,7 @@ public function testOutputRegex()
82
82
```
83
83
84
84
上述测试结果都是通过的:
85
-
85
+ ![ ] ( https://laravelacademy.org/wp-content/uploads/2019/04/e9d093eb986aea2cf958f458ef2d268c.jpg )
86
86
87
87
88
88
### 对异常进行测试
@@ -111,7 +111,7 @@ public function testException()
111
111
}
112
112
```
113
113
运行测试用例,结果为通过:
114
-
114
+ ![ ] ( https://laravelacademy.org/wp-content/uploads/2019/04/2c0834c755a480784d0b6318b4842661.jpg )
115
115
116
116
117
117
如果传入的抛出异常类的是父类,也会通过:
@@ -150,7 +150,7 @@ protected function setUp(): void
150
150
```
151
151
152
152
上面两个测试用例从功能上说是等价的:
153
-
153
+ ![ ] ( )
154
154
155
155
156
156
### 对错误进行测试
@@ -232,7 +232,7 @@ public function testIsStackContains()
232
232
然后我们在需要用到这个数据提供器的测试用例上用 ` @dataProvider ` 注解进行声明,在这个示例中我们迭代数据提供器数组,将其中的数据作为参数传入 ` TestService ` 的 ` stackContains ` 方法以判断对应值在 ` stack ` 属性中是否存在。
233
233
234
234
以下是上述用例运行结果:
235
-
235
+ ![ ] ( )
236
236
237
237
238
238
关于 ` Laravel ` 基于 ` PHPUnit ` 编写单元测试用例我们就简单介绍到这里,在这篇教程中我们基本上使用的都是 ` PHPUnit ` 提供的原生测试功能,下一篇我们将围绕 ` Laravel ` 功能测试展开,主要是对控制器和 ` API ` 接口的测试,在那里,我们将开始就 ` Laravel ` 框架在 ` PHPUnit ` 基础上封装的新功能新特性进行介绍。
You can’t perform that action at this time.
0 commit comments