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

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

感謝大家

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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