共用方式為


Private、Internal 和 Friend 方法的單元測試

對於標示為私用、內部和 friend 的方法,一般無法從包含這些方法的類別外部存取這些方法。 不過,Visual Studio 工具會提供能夠存取這些方法的單元測試,即使單元測試檔案是不同的類別也一樣。

儘管您不必編輯單元測試檔案來允許存取這些方法,但還是可以使用一些選項來決定內部和 friend 方法的處理方式。 本文章將說明這些選項,以及描述在測試私用、內部和 friend 方法時,專案中發生的狀況。

注意事項注意事項

如需如何建立單元測試的指示,請參閱針對現有的程式碼建立和執行單元測試

注意事項注意事項

存取子的用法在 Visual Studio 2010 中已被取代,可能不會包含在未來的 Visual Studio 版本。

私用方法

當您建立私用方法的單元測試時,[測試參考] 資料夾會加入至測試專案中,而且存取子會加入至該資料夾中。 單元測試方法的邏輯中也會參考這個存取子。

Form1_Accessor target = new Form1_Accessor(); // TODO: Initialize to an appropriate value
Dim target As Form1_Accessor = New Form1_Accessor() ' TODO: Initialize to an appropriate value

這個存取子可讓單元測試呼叫受測試程式碼中的私用方法。

您可以手動建立存取子或重新建立已刪除的存取子。 若要這麼做,請以滑鼠右鍵按一下受測試程式碼,指向 [建立私用存取子],並選取需要此存取子的測試專案。

內部或 Friend 方法

當您以 C# 建立內部方法的單元測試,或以 Microsoft Visual Basic 建立 friend 方法的單元測試時,會出現對話方塊,讓您選擇以私用存取子或以 InternalsVisibleToAttribute 來存取內部方法。

注意事項注意事項

如果此屬性已經加入至專案中,可能就不會出現對話方塊。

如果您選擇以 InternalsVisibleToAttribute 存取內部方法,此屬性會加入至 AssemblyInfo.cs 檔案。 此屬性會讓受測試程式碼中的內部方法可供測試專案使用。 針對您選擇這個選項的每個測試專案,都會加入新屬性。

如果您選擇以私用存取子存取內部方法,則會發生本文前述私用方法的相同行為:[測試參考] 資料夾會加入至測試專案中,存取子會加入至該資料夾中,而且單元測試方法的邏輯中也會參考這個存取子。 在此情況下,私用存取子即可供存取受測試的內部和私用方法。

如果您已經選擇將 InternalsVisibleToAttribute 加入至專案,仍然可以建立內部方法的單元測試,並改以私用存取子存取這些內部方法。 不過,您必須在建立單元測試時就這麼做。 按一下 [建立單元測試] 對話方塊中的 [設定]。 在 [測試產生設定] 對話方塊中,清除 [允許 InternalsVisibleTo 屬性] 核取方塊。

請參閱

概念

單元測試的結構

單元測試和 C++

泛型方法的單元測試