相依的 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...

想請問這該如何處理較好?

感謝大家

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!