Start Debugging

タグ: testing

8 件

.NET 11 で TimeProvider と FakeTimeProvider を使って時間依存コードをテストする方法
DateTime.UtcNow、Stopwatch、Task.Delay を System.TimeProvider に置き換えて、テストから時計を制御します。依存性注入への登録、FakeTimeProvider.Advance と SetUtcNow、タイムアウトや PeriodicTimer ベースの BackgroundService のテスト、そして Advance と継続処理の落とし穴と xUnit v2 の問題まで解説します。
ASP.NET Core 11 で WebApplicationFactory<T> を使って統合テストを書く方法
ASP.NET Core 11 における WebApplicationFactory<TEntryPoint> の完全ガイドです。Program エントリポイントを到達可能にする方法、ConfigureTestServices と ConfigureWebHost の違い、IDbContextOptionsConfiguration 経由での EF Core 登録の差し替え、.NET 11 プレビュー 6 の新しい ConfigureHostApplicationBuilder フック、認証の偽装、WebApplicationFactoryClientOptions、そして実際のポートが必要なときの UseKestrel を解説します。
Testcontainers で本物の SQL Server に対する統合テストを書く方法
Testcontainers 4.11 と EF Core 11 を使い、ASP.NET Core の統合テストを本物の SQL Server 2022 に対して実行するための完全ガイドです。WebApplicationFactory の組み立て、IAsyncLifetime、DbContext 登録の差し替え、マイグレーションの適用、並列実行、Ryuk によるクリーンアップ、CI のはまりどころを解説します。
変更追跡を壊さずに DbContext をモックする方法
DbContext を直接モックすると ChangeTracker が静かに壊れます。だからこそ Microsoft はそれを推奨していません。本ガイドは EF Core 11 で実際に機能する 2 つのパターンを示します。接続を開いたまま保持して本物の ChangeTracker を動かす SQLite インメモリと、テストから EF Core を完全に追い出すリポジトリパターンです。