2009-05-26 105 views
0

我正在密集使用Active Directory工作。我針對AD設計了幾個單元測試,其中一些是使用模擬對象實現的,其中一些是通過實際調用AD來實現的。如何根據Active Directory對NextPasswordChangeDate函數進行單元測試

作爲我的項目的功能之一,我必須檢索一個所謂的「用戶配置文件」。此用戶配置文件主要由簡單屬性組成,如「cn」,「company」,「employeeid」等。但是,我試圖填充的一個屬性不是簡單的屬性「NextPasswordChangeDate」。

據我所知,獲取此的唯一方法是獲取域策略的maxPwdAge並將此信息與pwdLastSet一起使用。

現在我的問題:我該如何以智能的方式進行單元測試?我想出了三個選項,所有這一切都不是很大:

  1. 用我自己的帳戶作爲搜索帳戶,通過其他手段,並在單元測試硬編碼找出日期。通過這種方式,我可以單元測試我的代碼,但每個月都必須更改單元測試,因爲我更改了密碼。
  2. 使用某個擁有密碼的帳號永不過期。這是毫無意義的,因爲我無法真正測試我的代碼的正確性。
  3. 使用模擬對象並確保發生正確的API調用。這個選項允許測試函數行爲的正確性,但是然後被測試的邏輯實際上是在單元測試中,因此我不能確定,即使測試通過,它也在做正確的事情。

您建議您選擇哪三種?或者,也許你有更好的選擇?

回答

0

自1和2以來,依賴於AD存在並具有已知值似乎更像是對我的集成測試。

我通常認爲,如果可能的話,任何非確定性行爲都應該被接口和模擬(#3)。正如您所指出的那樣,這將永遠留下大量不是單元可測試的實際實現代碼,但是這些代碼將會在您針對已知AD系統運行的集成測試中得到涵蓋。

Related Question/Answer

相關問題