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

資訊專欄INFORMATION COLUMN

寫Laravel測試代碼(四)

blastz / 3055人閱讀

摘要:在寫單元測試時(shí),有時(shí)候需要測試的,可以使用來做,而不是去改成,破壞封裝。在的中添加一個方法就行然后在中這樣寫測試就行

在寫單元測試時(shí),有時(shí)候需要測試A class 的 protected or private method,可以使用 Class Reflection 來做,而不是去改成public,破壞封裝

laravel 的 abstract TestCase class 中添加一個方法就行:

    /**
     * Call protected or private method of a class.
     *
     * @param object $object      instantiated object that we will run method on.
     * @param string $method_name method name to call
     * @param array  $parameters  array of parameters to pass into method.
     *
     * @return mixed Method return.
     */
    protected function invokeNonPublicMethod($object, string $method_name, ...$parameters)
    {
        $reflection = new ReflectionClass(get_class($object));
        $method     = $reflection->getMethod($method_name);
        $method->setAccessible(true);

        return $method->invokeArgs($object, $parameters);
    }

然后在 test case 中這樣寫測試就行:

final AccountTest extends TestCase
{
    public function testValue()
    {
        $account = new Account()
        
        // actual
        $values = $this->invokeNonPublicMethod($account, "privateMethod", [1, 2, 3]);
        // $values = $this->invokeNonPublicMethod($account, "protectedMethod", [2, 3, 4]);
        
        // assert
        ...
    }

}

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25612.html

相關(guān)文章

  • 如何做到 Laravel 配置可以網(wǎng)站后臺配置【社群系統(tǒng)ThinkSNS+研發(fā)日記

    摘要:本文分享下利用的達(dá)到網(wǎng)站后臺設(shè)置配置。當(dāng)加載配置執(zhí)行完成后就會執(zhí)行我注入的后置事件。官網(wǎng)內(nèi)測申請方式提供個人企業(yè)聯(lián)系方式及認(rèn)證信息實(shí)名企業(yè)營業(yè)執(zhí)照照片或掃描件及申請說明,發(fā)送郵件至將有機(jī)會獲得首批內(nèi)測資格,名額有限,申請從速。 本文分享下利用 Laravel 的 Bootstrapping 達(dá)到網(wǎng)站后臺設(shè)置 laravel 配置。 需求場景 首先,ThinkSNS+ 作為一個用戶可以使...

    alanoddsoff 評論0 收藏0
  • Laravel 菜鳥晉級之路

    摘要:用也有三四個月了,雖然是兼職開發(fā),但是使用的頻率非常之高,畢竟是產(chǎn)品化的一個項(xiàng)目。第二階段數(shù)據(jù)庫和開發(fā)了比較多的功能之后,會發(fā)現(xiàn)需要大量的測試數(shù)據(jù),這時(shí)候和就該大顯身手了。 用Laravel也有三四個月了,雖然是兼職開發(fā),但是使用的頻率非常之高,畢竟是產(chǎn)品化的一個項(xiàng)目。在這期間,也踩了無數(shù)的坑,走了很多彎路,所以準(zhǔn)備把最近的感悟記錄下來,方便后來者。 第一階段:簡單的增刪改查 這是最...

    YacaToy 評論0 收藏0
  • 三年前舊代碼的重構(gòu)、總結(jié)與反思

    摘要:最近在維護(hù)一個三年前的舊代碼,用的是框架。單元測試和語言并發(fā)控制實(shí)際上是個蛋疼的問題,夸張一點(diǎn)說,當(dāng)時(shí)的并不能特別輕松地實(shí)現(xiàn)并發(fā),甚至不能實(shí)現(xiàn)并發(fā)。語言的功能之一就是自帶單元測試。用語言之前,我的習(xí)慣是不寫單元測試。 最近在維護(hù)一個三年前的舊代碼,用的是laravel框架。 從某些方面來講,這個代碼算是比較標(biāo)準(zhǔn)為了實(shí)現(xiàn)在規(guī)定的時(shí)間內(nèi)完成相關(guān)功能,同時(shí)程序員水平不高、經(jīng)過大量優(yōu)化之后,變...

    Shihira 評論0 收藏0
  • Laravel 5系列教程:數(shù)據(jù)庫和Eloquent

    摘要:原文來自免費(fèi)視頻教程地址上一篇寫了一些的基本用法和給視圖傳遞變量的幾種方式,這一節(jié)我們來說說跟數(shù)據(jù)庫打交道的數(shù)據(jù)庫配置和強(qiáng)大的。 原文來自: https://jellybool.com/post/programming-with-laravel-5-database-and-eloquent-model 免費(fèi)視頻教程地址 https://laravist.com/series/lara...

    XFLY 評論0 收藏0
  • 13 個快速構(gòu)建 Laravel 后臺的擴(kuò)展包

    摘要:值得一提的是擴(kuò)展包不免費(fèi)用于商業(yè)用途,作者用一種人類友好的方式說你使用這個擴(kuò)展包就是應(yīng)該去掙錢的,而不是免費(fèi)的去工作這個擴(kuò)展包收費(fèi)美元。除了這些,還有五個沒有全面的審查的擴(kuò)展包。最后,還有三個優(yōu)質(zhì)的包選擇于。 showImg(https://segmentfault.com/img/remote/1460000012312105?w=2200&h=1125); 開發(fā)者們都是懶惰的,不,...

    MiracleWong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<