用途:为 .NET 项目提供 MongoDB 与 Redis 的容器化整合测试指南,使用真实容器验证正式环境行为,适用于需要真实 NoSQL 依赖的集成测试场景。
主要能力:MongoDB 侧覆盖 Container Fixture 建立、嵌套对象/数组/字典等复杂文档模型、BSON 序列化测试、含乐观锁定的 CRUD、索引效能与唯一性约束测试;Redis 侧覆盖 CacheItem、UserSession、RecentView、LeaderboardEntry 等缓存模型,以及 String、Hash、List、Set、Sorted Set 五种数据结构的测试,含 TTL 过期与数据隔离。
使用方式:项目需 net9.0,引入 MongoDB.Driver 与 MongoDB.Bson 3.7.1、StackExchange.Redis 2.12.8、Testcontainers 及 Testcontainers.MongoDb、Testcontainers.Redis 4.11.0,测试框架为 xunit 2.9.3、Microsoft.NET.Test.Sdk 18.3.0、AwesomeAssertions 9.4.0,另有 System.Text.Json、Microsoft.Bcl.TimeProvider、Microsoft.Extensions.TimeProvider.Testing。推荐用 Collection Fixture 共享容器:以 [CollectionDefinition] 定义集合、[Collection] 注入 fixture,减少容器重启。数据隔离用 Guid 生成唯一 Username/Email、Key 前缀;清理时 Redis 用 KeyDelete 代替 FLUSHDB,避免权限问题,并可用 WithWaitStrategy 的 UntilCommandIsCompleted 等待容器就绪。
限制:资料未提供价格、许可与平台支持信息;示例版本基于 net9.0 与上方套件版本;索引与容器等待等需按实际环境调整。