我们之前做的单元测试,
比较接近针对API的测试,
那我们现在要开始针对网页来做测试,
我们首先针对首页来做单元测试,
我们先看一下我们的首页
然後我们写了一个单元测试在MyFirstUnitTest.php
public function test_first_page_laravel()
{
$this->visit('/')
->see('Laravel')
->dontSee('Rails');
}
这个意思是说我们预期首页应该会有Laravel这个字,
然後不应该会有Rails这个字
那我们来执行看看
php vendor/phpunit/phpunit/phpunit tests/Feature/MyFirstUnitTest.php
怎麽会这样呢?
跟说好的不一样啊!
当我们遇到问题的时候,
首先就是先去找谷哥聊天,
然後他就跟我说(参见:Upgrade Guide)
这种方法只用到Laravel 5.3而已,
要改用browser-kit-testing,
所以我们就安装了这个套件
composer require --dev laravel/browser-kit-testing
然後在 composer.json
档案里面,
在 autoload-dev
标签底下新增 psr-4
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
}
然後在tests资料夹底下新增一个BrowserKitTestCase.php
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
use Laravel\BrowserKitTesting\TestCase as BaseTestCase;
abstract class BrowserKitTestCase extends BaseTestCase
{
/**
* The base URL of the application.
*
* @var string
*/
public $baseUrl = 'http://localhost';
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
return $app;
}
}
然後我发现BrowserKitTestCase没办法是用我们之前测试的Case,
所以针对网页的测试我们就另外加一个测试类别
php artisan make:test BrowserUnitTest
然後我们的BrowserUnitTest.php继承BrowserKitTestCase.php
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\BrowserKitTestCase;
class BrowserUnitTest extends BrowserKitTestCase
{
public function test_first_page_laravel()
{
$this->visit('/')
->see('Laravel')
->dontSee('Rails');
}
}
再执行一次测试
php vendor/phpunit/phpunit/phpunit tests/Feature/BrowserUnitTest.php
终於通过测试了!
<<: [Day16] 再也不用靠线上工具! 用Python把图片转成ASCII文字图!
>>: 无线上网:Wi-Fi, 3G, 4G 及 5G 都是些是什麽?
前言 因工作需求碰到ODOO这套ERP,藉由铁人赛纪录所学与遇到的问题,若有错误也欢迎不吝指出。 O...
[Day18] Unreal Webcam Fun 需要用到的技巧与练习目标 MediaDevice...
DBABootcamp 在处理资料库还原的时候,常常会出现 (the database is in ...
margin 与 padding 这两个属性应该是所有新手必学的两大属性,也是网页入门必备的一项常识...
前言 在更新Linkedkin 个人档案的时候 偶然发现他有技术检定测验 如果总成绩在前30%,会发...