Methods

test_success_lifecycle_marks_ledger_success()

test_success_lifecycle_marks_ledger_success() : void

成功链路:sync 驱动同步执行 → 台账落成功 + 结果 + 尝试摘要闭合 + 耗时

test_failure_lifecycle_records_attempt_error_and_final_failure()

test_failure_lifecycle_records_attempt_error_and_final_failure() : void

失败链路(sync 驱动):逐次失败入尝试摘要(含原因),Job::fail() 触发 JobFailed 事件落最终失败终态;push 对 sync 模式做异常降级—— 执行失败记台账不再向请求冒泡(database 驱动由 worker 重试耗尽后触发同事件)。

test_mark_processing_is_idempotent_per_attempt()

test_mark_processing_is_idempotent_per_attempt() : void

处理中标记幂等:同一尝试重复标记不重复追加(包装与 JobProcessing 事件双路径协作)

test_mark_processing_recovers_crashed_attempt()

test_mark_processing_recovers_crashed_attempt() : void

崩溃兜底:上次尝试未闭合(worker 被杀/超时)→ 下次领取补记中断并闭合

test_job_failed_event_marks_final_failure()

test_job_failed_event_marks_final_failure() : void

最终失败(JobFailed 事件兜底):落终态 + 错误信息/类名/堆栈

test_terminal_statuses_are_immutable()

test_terminal_statuses_are_immutable() : void

终态不可回退:已成功/已取消的行不再被处理中/失败标记覆写

test_present_payload_masks_sensitive_fields()

test_present_payload_masks_sensitive_fields() : void

敏感载荷接口掩码下发(库内快照恒明文),raw=true 超管明文

test_redispatch_creates_child_row_with_parent_chain()

test_redispatch_creates_child_row_with_parent_chain() : void

重投:复用载荷快照另立新行,parent_id 构成审计链(历史不覆写)

test_cancel_removes_queue_row_and_marks_cancelled()

test_cancel_removes_queue_row_and_marks_cancelled() : void

取消:仅待处理可取消——删除原生队列表对应行 + 台账落取消终态

test_prune_removes_by_config_days()

test_prune_removes_by_config_days() : void

清理按保留天数分级:成功 90 天、失败/取消 180 天(配置缺省值)

test_mail_job_sends_and_records_result()

test_mail_job_sends_and_records_result() : void

邮件队列:SendMailJob → MailService 场景链路发送成功 → 台账落发送结果

createJobCenterSchema()

createJobCenterSchema() : void

队列中心三表最小 schema(类型注册表 + 执行台账 + Laravel 原生队列表)

requireRedis()

requireRedis() : void

Redis 依赖探针:直连 Redis 的测试(限流/会话/验证码)在无 Redis 环境(如 CI) 跳过而非失败——其余用例不受影响。CI 可设 TEST_REQUIRE_REDIS=1 强制模式: Redis 不可达即失败而非跳过,安全回归套件不允许静默消失。

buildCacheRegistry()

buildCacheRegistry(array  $items) : void

建缓存注册表最小 schema(td_sys_cache)并灌入注册项。

测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。

Parameters

array $items

setUp()

setUp() : void

tearDown()

tearDown() : void

makeType()

makeType(string  $code = 'life_job', string  $handlerClass = JobCenterTestOkJob::class, array  $overrides = []) : \App\Models\SysJobType

建启用自定义队列

Parameters

string $code
string $handlerClass
array $overrides

Returns

\App\Models\SysJobType —