正如我從單元測試的藝術閱讀,知道.NET可以隱藏生產運行時測試的seam方法。 (第78頁〜第80頁)。 例如,Java的單元測試可以隱藏生產代碼的接縫界面,因爲.NET可以做到嗎?
public class LogAnalyzer
{
...
internal LogAnalyzer (IExtensionManager extentionMgr)
{
manager = extentionMgr;
}
}
這樣運行。
using System.Runtime.CompilerServices;
[assembly:
InternalsVisibleTo("AOUT.CH3.Logan.Tests")]
所以紀錄分析工具()只能被稱爲測試類,沒有可測性的目的,對生產代碼增加額外成本的後顧之憂。經過簡要的調查,似乎Java沒有相同的功能。 但是Java有替代品嗎? 謝謝。
感謝您的回答。我的意思是爲了使生產代碼可測試,我們需要打開單元測試的「seam」方法來注入可控的存根/模擬/派生類,我的問題是如何隱藏這些「seam」方法被稱爲測試,而不是生產用途。 – 2012-07-25 00:54:08
@JimHorng好的,我誤解了這個問題。在這種情況下,我會離開這些方法並使用某種配置標誌設置運行時(屬性文件,系統屬性等)來啓用/禁用它們。使這些方法存在但禁用可能對調試部署的生產系統中發生的問題非常有用。 – Alex 2012-07-25 15:36:25