記一次TP單元測試報500錯誤的問題
一直聽說好的單元測試能提高代碼質(zhì)量,昨天終于在下定決心弄懂單元測試,但第一步就把我干趴下了,我的問題在下面
開始都沒有什么問題,tp5單元測試的手冊就那一點跛锌,通過看云上一位仁兄寫的 thinkphp單元測試手冊 我順利的安裝成功了單元測試模塊,就在第一步測試的時候出現(xiàn)問題了
我寫了兩個斷言,但只有一個能執(zhí)行通過届惋,另一個一直報 500 錯誤
namespace tests;
class IndexTest extends TestCase
{
public function testHello1(){
$this->makeRequest('get','/index/index/hello',['name'=>'yangyi'])->see('Hello,yangyi',false);
}
public function testIndex(){
$this->makeRequest('get','/index/index/hello',['name'=>'yangyi'])->see('Hello,yangy',false);
}
}
錯誤信息:
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.
.F 2 / 2 (100%)
Time: 599 ms, Memory: 6.00MB
There was 1 failure:
# 就是這里
1) tests\IndexTest::testIndex
A request to [http://thxs.tp5.com/index/index/hello] failed. Received status code [500].
F:\www\yy\vendor\topthink\think-testing\src\InteractsWithPages.php:485
F:\www\yy\vendor\topthink\think-testing\src\InteractsWithPages.php:458
F:\www\yy\tests\IndexTest.php:19
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestCase.php:1071
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestCase.php:939
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestResult.php:698
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestCase.php:894
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestSuite.php:755
F:\www\yy\vendor\phpunit\phpunit\src\Framework\TestSuite.php:755
F:\www\yy\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:545
F:\www\yy\vendor\phpunit\phpunit\src\TextUI\Command.php:195
F:\www\yy\vendor\topthink\think-testing\src\command\Test.php:42
F:\www\yy\thinkphp\library\think\console\Command.php:175
F:\www\yy\thinkphp\library\think\Console.php:670
F:\www\yy\thinkphp\library\think\Console.php:261
F:\www\yy\thinkphp\library\think\Console.php:198
F:\www\yy\thinkphp\library\think\Console.php:115
FAILURES!
Tests: 2, Assertions: 3, Failures: 1.
也是經(jīng)驗缺乏髓帽,錯誤找到晚上一點沒找到原因,就在今天脑豹,我人家的源碼沒一點問題郑藏,就是通不過測試,我就在測試的源碼中把獲取的網(wǎng)頁信息放入了日志文件瘩欺,通過查看日志才知道出了什么錯

UC截圖20190512131357.png
我之前在tp5 中定義了一個行為 在加載的時候定義一些常量必盖,第一次執(zhí)行的時候沒什么問題,第二次執(zhí)行的時候因為那些常量已經(jīng)定義過了俱饿,所以才會出現(xiàn)問題歌粥,報 500 的錯誤,
還是對單元測試流程不熟悉引起的,因為正常訪問網(wǎng)頁沒什么問題,但運行單元測試的時候就會重復(fù)定義