国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

PHPUnit實(shí)踐二(生命周期)

617035918 / 1809人閱讀

摘要:另外,與模板方法將分別在測(cè)試用例類(lèi)的第一個(gè)測(cè)試運(yùn)行之前和測(cè)試用例類(lèi)的最后一個(gè)測(cè)試運(yùn)行之后調(diào)用。

本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架

PHPUnit測(cè)試一個(gè)文件類(lèi)的生命周期

理解PHPUnit加載機(jī)制(Lumen版)

PHPUnit自動(dòng)測(cè)試文件會(huì)自動(dòng)加載引入(include file)

PHPUnit去啟動(dòng)setUp方法,Lumen里重寫(xiě)了setUp,加載了bootstrap/app.php

app.php加載了composer的autoload,借此你項(xiàng)目所有自動(dòng)加載環(huán)境都有了,不過(guò)不包含tests目錄

至此我們引入了我們需要構(gòu)建自己的自動(dòng)加載類(lèi)

增加tests的自動(dòng)加載 我們需要給tests下的測(cè)試用例創(chuàng)建類(lèi)似下面的結(jié)構(gòu)
├── BaseCase.php 重寫(xiě)過(guò)Lumen基類(lèi)的測(cè)試基類(lèi),用于我們用這個(gè)基類(lèi)做測(cè)試基類(lèi),后續(xù)會(huì)說(shuō)明
├── bootstrap.php tests自動(dòng)加載文件
├── Cases 測(cè)試用例目錄
│?? └── Demo 測(cè)試模塊
│??     ├── logs 日志輸出目錄
│??  ?? ├── PipeTest.php PHPUnit流程測(cè)試用例
│??     ├── phpunit.xml phpunit配置文件xml
│??     └── README.md 本模塊測(cè)試用例說(shuō)明
├── ExampleTest.php 最原始測(cè)試demo
└── TestCase.php Lumen自帶的測(cè)試基類(lèi)
tests自動(dòng)加載文件代碼

phpunit.xml

自動(dòng)加載配置bootstrap文件




流程測(cè)試代碼 TestCase.php
# 代碼頭部添加 命令空間Test
namespace Test;
PipeTest 流程代碼
assertTrue(true);
    }

    public function testTwo()
    {
        fwrite(STDOUT, __METHOD__ . "
");
        // 兩個(gè)交換下順序可以看下效果
        // 正常執(zhí)行成功assert可以繼續(xù)執(zhí)行,失敗的會(huì)跳出方法
        $this->assertArrayHasKey("d", ["d"=>1, "e"=>2]);
        $this->assertTrue(false);
    }

    public function testThree()
    {
        fwrite(STDOUT, __METHOD__ . "
");
        $this->assertTrue(false);
    }

    public function testFour()
    {
        fwrite(STDOUT, __METHOD__ . "
");
    }

    /**
     * 測(cè)試方法成功后的后置執(zhí)行,tearDown之前
     */
    protected function assertPostConditions()
    {
        fwrite(STDOUT, __METHOD__ . "
");
    }

    public function tearDown()
    {
        fwrite(STDOUT, __METHOD__ . "
");
    }

    public static function tearDownAfterClass()
    {
        fwrite(STDOUT, __METHOD__ . "
");
    }

    /**
     * 不成功后攔截方法
     * 必須重新拋出錯(cuò)誤,如果不拋出錯(cuò)誤,斷言會(huì)當(dāng)成成功了
     */
    public function onNotSuccessfulTest(Throwable $e)
    {
        fwrite(STDOUT, __METHOD__ . "
");
        // 必須重新拋出錯(cuò)誤,如果不拋出錯(cuò)誤,斷言會(huì)當(dāng)成成功了
        throw $e;
    }
}
運(yùn)行
# 你可以把vendor/bin加入到環(huán)境變量PATH
cd tests/Demo
../../../vendor/bin/phpunit
運(yùn)行輸出
PHPUnit 6.5.9 by Sebastian Bergmann and contributors.

TestCasesDemoPipeTest::setUpBeforeClass
TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testOne
TestCasesDemoPipeTest::assertPostConditions
TestCasesDemoPipeTest::tearDown
.TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testTwo
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::onNotSuccessfulTest
FTestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testThree
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::onNotSuccessfulTest
FTestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testFour
TestCasesDemoPipeTest::assertPostConditions
TestCasesDemoPipeTest::tearDown
R                                                                4 / 4 (100%)TestCasesDemoPipeTest::tearDownAfterClass


Time: 1.29 seconds, Memory: 6.00MB

There were 2 failures:

1) TestCasesDemoPipeTest::testTwo
Failed asserting that false is true.

/xxx/tests/Cases/Demo/PipeTest.php:47

2) TestCasesDemoPipeTest::testThree
Failed asserting that false is true.

/xxx/tests/Cases/Demo/PipeTest.php:53

--

There was 1 risky test:

1) TestCasesDemoPipeTest::testFour
This test did not perform any assertions

FAILURES!
Tests: 4, Assertions: 4, Failures: 2, Risky: 1.

Generating code coverage report in HTML format ... done
整理流程輸出
TestCasesDemoPipeTest::setUpBeforeClass
TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testOne
TestCasesDemoPipeTest::assertPostConditions
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testTwo
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::onNotSuccessfulTest
TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testThree
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::onNotSuccessfulTest
TestCasesDemoPipeTest::setUp
TestCasesDemoPipeTest::assertPreConditions
TestCasesDemoPipeTest::testFour
TestCasesDemoPipeTest::assertPostConditions
TestCasesDemoPipeTest::tearDown
TestCasesDemoPipeTest::tearDownAfterClass
總結(jié)
一個(gè)測(cè)試類(lèi)文件,從setUpBeforeClass加載,且僅此加載一次
每個(gè)測(cè)試方法都會(huì)走的過(guò)程:setUp->assertPreConditions->測(cè)試方法->[assert成功執(zhí)行:assertPostConditions]->tearDown->[assert執(zhí)行失敗:onNotSuccessfulTest,且本方法需要拋出錯(cuò)誤]
本個(gè)測(cè)試類(lèi)文件執(zhí)行tearDownAfterClass結(jié)束
參考

PHPUnit 6.5 官方文檔

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/8900.html

相關(guān)文章

  • PHPUnit實(shí)踐生命周期

    摘要:另外,與模板方法將分別在測(cè)試用例類(lèi)的第一個(gè)測(cè)試運(yùn)行之前和測(cè)試用例類(lèi)的最后一個(gè)測(cè)試運(yùn)行之后調(diào)用。 本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架 PHPUnit測(cè)試一個(gè)文件類(lèi)的生命周期 showImg(https://segmentfault.com/img/bVbnXJj?w=1330&h=1186); 理解PHPUnit加載機(jī)制(Lumen...

    jemygraw 評(píng)論0 收藏0
  • 小程序實(shí)踐):swiper組件實(shí)現(xiàn)輪播圖效果

    摘要:組件類(lèi)似于中的,實(shí)現(xiàn)類(lèi)似輪播圖的效果,相對(duì)于的實(shí)現(xiàn)起來(lái)更加方便,快捷。swiper組件類(lèi)似于Android中的ViewPager,實(shí)現(xiàn)類(lèi)似輪播圖的效果,相對(duì)于Android的Viewpager,swiper實(shí)現(xiàn)起來(lái)更加方便,快捷。 效果圖: 首先看下swiper支持的屬性: --------------------------------------------------------...

    番茄西紅柿 評(píng)論0 收藏0
  • PHPUnit實(shí)踐一(初識(shí))

    摘要:另外一些單元測(cè)試可能會(huì)測(cè)試負(fù)向路徑的場(chǎng)景,保證代碼不僅會(huì)產(chǎn)生錯(cuò)誤,而且是預(yù)期的錯(cuò)誤。是一個(gè)面向程序員的測(cè)試框架,這是一個(gè)的體系結(jié)構(gòu)的單元測(cè)試框架。 本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架 前置 日常我們的普通用到的測(cè)試: 代碼直接echo,debug等方法測(cè)試 -> 跟蹤細(xì)節(jié)斷點(diǎn)型測(cè)試 log日志輔助測(cè)試 -> 跟蹤細(xì)節(jié)斷點(diǎn)型測(cè)試 ...

    weapon 評(píng)論0 收藏0
  • PHPUnit實(shí)踐一(初識(shí))

    摘要:另外一些單元測(cè)試可能會(huì)測(cè)試負(fù)向路徑的場(chǎng)景,保證代碼不僅會(huì)產(chǎn)生錯(cuò)誤,而且是預(yù)期的錯(cuò)誤。是一個(gè)面向程序員的測(cè)試框架,這是一個(gè)的體系結(jié)構(gòu)的單元測(cè)試框架。 本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架 前置 日常我們的普通用到的測(cè)試: 代碼直接echo,debug等方法測(cè)試 -> 跟蹤細(xì)節(jié)斷點(diǎn)型測(cè)試 log日志輔助測(cè)試 -> 跟蹤細(xì)節(jié)斷點(diǎn)型測(cè)試 ...

    hss01248 評(píng)論0 收藏0
  • PHPUnit實(shí)踐三(構(gòu)建模塊化的測(cè)試單元)

    摘要:本系列教程所有的測(cè)試基于版本,框架目錄結(jié)構(gòu)模塊下的目錄是符合的模塊結(jié)構(gòu)的如等是模塊目錄下的結(jié)構(gòu)目錄如果有自己的目錄同級(jí)分配即可,如我這里的整體結(jié)構(gòu)重寫(xiě)過(guò)基類(lèi)的測(cè)試基類(lèi),用于我們用這個(gè)基類(lèi)做測(cè)試基類(lèi),后續(xù)會(huì)說(shuō)明自動(dòng)加載文件測(cè)試用例目錄某測(cè)試模 本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架 目錄結(jié)構(gòu) 模塊下的目錄是符合Lumen的模塊結(jié)構(gòu)的如:...

    goji 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<