算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
android-testing【设计与创意】Write Android unit, Compose UI, and Hilt-integrated tests. Use when designing test behavior with MockK or coroutine test utilities; defer database/WorkManager-specific recipes to the owning feature skill.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Qualitative reasoning framework to evaluate unit test value:
[MOB-TEST-01] Tripartite Naming: Name tests Method_Scenario_ExpectedBehavior (e.g. submitOrder_whenCreditLimitExceeded_displaysBlockedBanner).[MOB-TEST-02] State & ViewModel Invariant Rule: Assert UI state transitions (e.g. StateFlow/UiState via Turbine test {}); ban asserting 30-property boilerplate state copies.[MOB-TEST-03] Entity Invariant & Serialization Rule: Test calculations, validations, domain invariants, and non-trivial serialization/parsing or error mapping. Ban testing auto-generated code, trivial getters, or echo tests repeating literal assignments.[MOB-TEST-04] Contract Testing Rule: Repositories and data sources must be tested for contract compliance and error mapping. Ban 1:1 pass-through mock echoing (coEvery { dataSource.get() } returns x; repo.get() == x).[MOB-TEST-05] Bug-First Regression Lock: Every PR fixing a bug ticket or with title fix(...) must introduce a failing test reproducing the defect before fixing it.runTest with MainDispatcherRule. Mock with MockK or fakes.createAndroidComposeRule + Hilt (HiltAndroidRule). Fake repositories via @TestInstallIn.[MOB-TEST-01] Vague names: Banish non-descriptive test names.[MOB-TEST-02] Brittle state copies: Ban asserting 30-property boilerplate state copies; use focused state assertions or Turbine.[MOB-TEST-03] Echo tests: Ban testing auto-generated code, trivial getters, or repeating literal assignments.[MOB-TEST-04] Pass-through mock echoing: Ban 1:1 pass-through mock echoing and shallow assertions without contract checks.[MOB-TEST-05] Missing bug reproduction: Ban bug fix PRs without reproduction tests.composeTestRule.waitUntil for async timing.