相依的 method 要怎寫測試?
1. 运行环境
1). 当前使用的 Laravel 版本?
6.20.6
2). 当前使用的 php/php-fpm 版本?
PHP 版本:7.4.2
2. 问题描述?
在 object 中有個檢查訂單的 method, 在這 method 中檢查後,會將相關的檢查訊息存入另個表中
且這個 object 包成 facade
// schematic
class Facade
{
function inspect(Order $order)
{
// some inspect
// then store
}
}
但在測試裡,不知該如何去測試這段
因為 mock inspect 這個 method 後
裡面的存結果流程就不會執行,所以找不到檢查結果
Facade::shouldReceive('inspect')->once()
$order = Order::find();
$order->inspect // is null
有想過先把檢查的結果先吐給外部,再從外部呼叫儲存的 method
$result = Facade::inspect($order);
Facade::store($result);
但檢查跟儲存二個 method 是相依的,拆開在使用上怕會有遺漏的問題
Facade::inspect($order);
// then...forget...
想請問這該如何處理較好?
感謝大家
推荐文章: