控制台测试


简介

除了简化 HTTP 测试外,Laravel 还为测试需要用户输入的控制台应用提供了简单的 API。

期望输入/输出

Laravel 允许你使用 expectsQuestion 方法为控制台命令轻松「模拟」用户输入,此外,你还可以使用 assertExitCodeexpectsOutput 方法指定控制台命令退出码和期望输出的文本。例如,考虑下面这个控制台命令(定义在 routes/console.php 中):

接下来我们为其创建测试用例:

生成的测试文件位于 tests/Feature/CommandTest.php,我们可以为 question 命令编写测试代码如下,其中使用到了 expectsQuestionexpectsOutputassertExitCode 方法:

测试结果如下:

运行控制台测试

当编写的命令期望获得 “yes” 或 “no” 形式的确认时,可以使用 expectsConfirmation 方法:


<< 上一篇: HTTP 测试

>> 下一篇: 浏览器测试(Dusk)