\Tests\FeatureConfigConvenientTest

测试基座(抽象基类)

被测对象:无(公共测试设施) 守护约定:Redis 直连用例在无 Redis 环境(如 CI)跳过而非失败(TEST_REQUIRE_REDIS=1 可强制失败); 缓存注册表最小 schema 供 sqlite :memory: 下凡走注册表的用例自建。

Summary

Methods
Properties
Constants
test_set_number_roundtrip_keeps_int_type()
test_set_boolean_roundtrip_keeps_bool_type()
test_get_default_when_unset()
test_get_unknown_key_returns_default()
test_set_tabs_value_via_set_tab()
test_set_on_tabs_def_rejects_with_clear_message()
test_set_invalid_select_option_rejects()
test_set_unknown_key_throws()
test_set_clears_cache()
No public properties found
No constants found
makeDef()
requireRedis()
buildCacheRegistry()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

test_set_number_roundtrip_keeps_int_type()

test_set_number_roundtrip_keeps_int_type() : void

验证 set number 后 get 保持 int 类型一致(不因落库变 string)。

test_set_boolean_roundtrip_keeps_bool_type()

test_set_boolean_roundtrip_keeps_bool_type() : void

验证 set boolean 后 get 保持 bool 类型一致(不因落库变 string)。

test_get_default_when_unset()

test_get_default_when_unset() : void

验证未显式 set 时 get 返回定义默认值。

test_get_unknown_key_returns_default()

test_get_unknown_key_returns_default() : void

验证未知 key 返回调用方传入的回落默认值。

test_set_tabs_value_via_set_tab()

test_set_tabs_value_via_set_tab() : void

验证 tabs 定义经 setTab/getTab 按 tab_key 读写并落库。

test_set_on_tabs_def_rejects_with_clear_message()

test_set_on_tabs_def_rejects_with_clear_message() : void

验证对 tabs 定义调用 set 被拒绝并给出「请用 setTab」提示。

test_set_invalid_select_option_rejects()

test_set_invalid_select_option_rejects() : void

验证 select 定义写入白名单外选项被拒绝。

test_set_unknown_key_throws()

test_set_unknown_key_throws() : void

验证 set 未知 key 抛「配置不存在」。

test_set_clears_cache()

test_set_clears_cache() : void

验证 set 后缓存立即清空(读后再写不残留旧值)。

makeDef()

makeDef(string  $key, string  $type, mixed  $default = null, string  $validation = '', string  $options = '', int  $isTabs) : \App\Models\SysConfigDefinition

创建测试配置定义(TEST 组,静态来源)

Parameters

string $key
string $type
mixed $default
string $validation
string $options
int $isTabs

Returns

\App\Models\SysConfigDefinition —

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