用途:为 Rust 自学习记忆项目提供统一的测试编写规范,覆盖单元测试质量、情景记忆(episodic memory)领域测试以及 async/tokio 异步代码测试,适合在编写测试、审查测试代码时使用。
主要能力与约定:命名采用 test_<function><scenario><expected_behavior>,例如 test_withdraw_valid_amount_decreases_balance;结构遵循 AAA(Arrange-Act-Assert)模式。核心原则包括每个测试只验证单一行为、只保留一个失败原因;对外部依赖(API、数据库、文件系统)使用 mock,不对值类型做 mock;使用 do-memory-test-utils 进行测试环境搭建。
情景记忆测试:状态流转为 Created -> InProgress -> Completed/Failed,示例中通过 start_episode、complete_episode、get_episode 验证生命周期与结果。
异步与 Tokio:基础异步用 #[tokio::test];需要控制时间、避免真实等待时用 #[tokio::test(start_paused = true)];并发场景用 #[tokio::test(flavor = "multi_thread", worker_threads = 4)]。存储可用 MockTursoStorage 实现 StorageBackend 接口。异步陷阱方面,应使用 tokio::time::sleep().await 而非 std::thread::sleep(),同步阻塞操作应放入 spawn_blocking。
反模式与修正:测试标准库应改为测试自身代码;无断言应改为验证结果;多行为应拆分测试;.unwrap() 链应改用 Result<()> 配合 ?。提交前检查清单包括命名、AAA 分离、单一行为、依赖 mock、异步使用 #[tokio::test]、返回 Result<()> 并使用 ?。
限制:资料未提供该技能的安装方式、依赖版本、收费或平台信息,暂未提供。