[teamai] Push 87 resource(s) from XingfenD

This commit is contained in:
2026-09-10 16:10:45 +08:00
parent 425c9c078a
commit 65c04def51
1314 changed files with 211681 additions and 0 deletions
@@ -0,0 +1,49 @@
# Testing with samber/do
## Container Cloning
Clone containers for isolated tests:
```go
func TestUserService(t *testing.T) {
// Create test container by cloning main container
testInjector := mainInjector.Clone()
// Override with mocks
mockDB := &MockDatabase{}
do.OverrideValue(testInjector, mockDB)
// Test with mocked dependencies
service := do.MustInvoke[UserService](testInjector)
// ... test code
}
```
## Reusable Test Helpers
```go
func SetupTestContainer(t *testing.T) do.Injector {
injector := do.New()
do.Provide(injector, func(i do.Injector) (Database, error) {
return &MockDatabase{}, nil
})
return injector
}
```
## Quick Reference
### Testing & Overrides
| Function | Purpose |
| -------------------------------- | ------------------------------- |
| `injector.Clone()` | Clone container for testing |
| `injector.CloneWithOpts()` | Clone with custom options |
| `do.Override[T]()` | Replace service (use in tests) |
| `do.OverrideNamed[T]()` | Replace named service |
| `do.OverrideValue[T]()` | Replace value service |
| `do.OverrideNamedValue[T]()` | Replace named value |
| `do.OverrideTransient[T]()` | Replace transient factory |
| `do.OverrideNamedTransient[T]()` | Replace named transient factory |