-
Notifications
You must be signed in to change notification settings - Fork 0
Choosing Your Approach
Aryeh Citron edited this page Apr 26, 2026
·
1 revision
| Approach | Best For | DI Required? | Prod Changes? |
|---|---|---|---|
InMemoryMongo.Create<T>() |
Unit tests, simple scenarios | No | No |
InMemoryMongo.Builder() |
Multi-collection unit tests | No | No |
UseInMemoryMongoDB() |
Integration tests with DI | Yes | No |
UseInMemoryMongoCollections() |
Collection-only DI replacement | Yes | No |
| Custom factory | Advanced DI scenarios | Yes | No |
Are you using Dependency Injection?
├── No
│ ├── Single collection? → InMemoryMongo.Create<T>()
│ └── Multiple collections? → InMemoryMongo.Builder()
│
└── Yes
├── Need to replace IMongoClient + IMongoDatabase + IMongoCollection<T>?
│ └── Yes → UseInMemoryMongoDB()
│
├── Only need IMongoCollection<T> replacements?
│ └── Yes → UseInMemoryMongoCollections()
│
└── Custom factory interface?
└── Yes → Manual implementation (see Setup Guide Pattern 5)
For most projects, use:
-
InMemoryMongo.Create<T>()for unit tests -
UseInMemoryMongoDB()for integration tests
These cover 90%+ of use cases with zero configuration.
- Setup Guide — Detailed patterns with code examples
- Getting Started — Quick start
Getting Started
Integration & Dependency Injection
Data Management
Reference
- Feature Comparison
- Features
- Filter & Update Operators
- Aggregation Pipeline
- LINQ Support
- API Reference
Help