2010-05-05 151 views
3

我使用Unity來做AOP,有人可以給我一些想法如何單元測試它們嗎?如何單元測試AOP?

+0

您是否找到了做到這一點的具體方法?我讀了答案但它不是很清楚? – 2014-09-04 10:32:29

回答

1

您的「方面」實現是否實現了ICallHandler(或Unity 2.0中非常類似的IInterceptionBehavior)並且已經添加到攔截對象的執行管道中?

如果是這樣,你可以正常測試它。你測試的是Invoke方法 - 調用它的模擬創建爲IMethodInvocation,設置爲在調用方面之前設置對象的狀態,並使用GetNextHandlerDelegate模擬設置對象來表示攔截的對象調用。

然後,您可以斷言:

  • 您委託目標是否正確 調用由 - 即測試是否 方面breks /不正確地打破 執行, 參數調用是否是正確的在Invoke的結果(IMethodReturn 對象)改變等
  • - 即測試 返回結果是否被正確地改變, 是否拋出異常等