總結
心得
跨出把流程圖轉換成測試這步,再把它變成理所當然的開發步驟後,測試先行也沒那麼困難了。
不要想著要接上正式的資料來測試,你應該測試的是程式邏輯是否能正確轉換或存取預期或非預期的資料格式,而不是資料的正確性。
利用 Mock 把要測試的類別分離開來,讓測試的重點專注於類別的職責上。
測試時,利用 Interface + DI 來注入 Mock 物件。
Reference
Example
CSRF
- http://marguspala.com/laravel-5-unit-testing-form-and-tokenmismatchexception-in-middleware/
- http://davejustdave.com/2015/02/08/laravel-5-unit-testing-with-csrf-protection/ (好解法)
Controller
- http://www.lutro.me/articles/testable-simple-l4-code-without-repository-patterns
- https://medium.com/laravel-4/laravel-4-controller-testing-48414f4782d0
- http://culttt.com/2013/07/15/how-to-structure-testable-controllers-in-laravel-4/
- http://stackoverflow.com/questions/23374247/laravel-testing-with-phpunit-and-mockery-setting-up-dependencies-on-controller