如題
剛接觸編寫測試程式碼,看教程寫了一些FeatureTest
琢磨著再寫一點UnitTest
發現FeatureTest裡面使用的很多功能UnitTest裡用不了
最後才發現這倆繼承的類不同
FeatureTest類繼承了Tests\TestCase;
這個類初始化了Laravel容器,Test裡面可以藉助Laravel的函式寫程式碼
UnitTest類繼承了PHPUnit\Framework\TestCase;
這個類沒有初始化Laravel容器,很多Laravel的功能是用不了的
我的程式碼全部都是Controller->Service->Repository->Model的分層結構寫的
各個層裡的類都依賴了很多上一層或者下一層的類
沒有了依賴注入,我怎麼去測試Service類的某一個函式?
或者說我對於UnitTest的理解是錯的?
或者說我的編碼邏輯有問題呢?
想問問大家都是怎麼寫的
舉個例子吧
如果有一個Model類 MemberProduct
這個類寫的時候就已經繼承了 Illuminate\Database\Eloquent\Model類
不初始化Laravel,我想New一個這個類都不容易,更沒有辦法去寫測試
如果有一個Service類 MemberService
這個類注入了MemberRepository類,MemberRepository類注入了Member類
不初始化Laravel,Member類我就New不了,初始化MemberService類都困難,怎麼才能寫測試呢?
本作品採用《CC 協議》,轉載必須註明作者和本文連結