0


1

パブリッククラスRollBack:OnMethodBoundaryAspect //またはインターセプト用の別のAOP {public override void OnEntry(MethodExecutionEventArgs eventArgs){try {ServiceConfig cfg = new ServiceConfig();} cfg.Transaction = TransactionOption.RequiresNew; cfg.TrackingAppName = "アプリケーションユニットテスト"; cfg.TransactionDescription = "アプリケーションユニットテストトランザクション"; cfg.TransactionTimeout = 0x2710。 ServiceDomain.Enter(cfg); } catch(例外例外){Console.WriteLine( "新しいトランザクションを入力できませんでした:\ n"例外); }}

パブリックオーバーライドvoid OnExit(MethodExecutionEventArgs eventArgs){try {if(ContextUtil.IsInTransaction){ContextUtil.SetAbort(); ServiceDomain.Leave(); } catch(例外例外){Console.WriteLine( "既存のトランザクションを終了できませんでした:\ n"例外); }}}

1 Answer


0


テスト後にロールバックするために、トランザクション内で戦略的にテストしていることがわかります。

私は個人的に最初から始めてテスト用のテーブルを作成し、その後それらを削除します。 もう1つの一般的な方法は、データベースを既知の状態に復元することです。ただし、データベース内の多くの状態に依存している場合は、テストが広すぎることを示していることをお勧めします。

私はPHPについてこれについて書きましたが、私は.NETでもっと頻繁に働きます。