摘要:在寫單元測試時,有時候需要測試的,可以使用來做,而不是去改成,破壞封裝。在的中添加一個方法就行然后在中這樣寫測試就行
在寫單元測試時,有時候需要測試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 ... } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/25612.html
摘要:本文分享下利用的達到網站后臺設置配置。當加載配置執行完成后就會執行我注入的后置事件。官網內測申請方式提供個人企業聯系方式及認證信息實名企業營業執照照片或掃描件及申請說明,發送郵件至將有機會獲得首批內測資格,名額有限,申請從速。 本文分享下利用 Laravel 的 Bootstrapping 達到網站后臺設置 laravel 配置。 需求場景 首先,ThinkSNS+ 作為一個用戶可以使...
摘要:用也有三四個月了,雖然是兼職開發,但是使用的頻率非常之高,畢竟是產品化的一個項目。第二階段數據庫和開發了比較多的功能之后,會發現需要大量的測試數據,這時候和就該大顯身手了。 用Laravel也有三四個月了,雖然是兼職開發,但是使用的頻率非常之高,畢竟是產品化的一個項目。在這期間,也踩了無數的坑,走了很多彎路,所以準備把最近的感悟記錄下來,方便后來者。 第一階段:簡單的增刪改查 這是最...
摘要:最近在維護一個三年前的舊代碼,用的是框架。單元測試和語言并發控制實際上是個蛋疼的問題,夸張一點說,當時的并不能特別輕松地實現并發,甚至不能實現并發。語言的功能之一就是自帶單元測試。用語言之前,我的習慣是不寫單元測試。 最近在維護一個三年前的舊代碼,用的是laravel框架。 從某些方面來講,這個代碼算是比較標準為了實現在規定的時間內完成相關功能,同時程序員水平不高、經過大量優化之后,變...
摘要:原文來自免費視頻教程地址上一篇寫了一些的基本用法和給視圖傳遞變量的幾種方式,這一節我們來說說跟數據庫打交道的數據庫配置和強大的。 原文來自: https://jellybool.com/post/programming-with-laravel-5-database-and-eloquent-model 免費視頻教程地址 https://laravist.com/series/lara...
摘要:值得一提的是擴展包不免費用于商業用途,作者用一種人類友好的方式說你使用這個擴展包就是應該去掙錢的,而不是免費的去工作這個擴展包收費美元。除了這些,還有五個沒有全面的審查的擴展包。最后,還有三個優質的包選擇于。 showImg(https://segmentfault.com/img/remote/1460000012312105?w=2200&h=1125); 開發者們都是懶惰的,不,...
閱讀 3944·2021-11-16 11:44
閱讀 3123·2021-11-12 10:36
閱讀 3381·2021-10-08 10:04
閱讀 1266·2021-09-03 10:29
閱讀 406·2019-08-30 13:50
閱讀 2615·2019-08-29 17:14
閱讀 1742·2019-08-29 15:32
閱讀 1087·2019-08-29 11:27