簡體   English   中英

Visual Build Pro 9無法生成使用PrivateObject的單元測試

[英]Visual Build Pro 9 fails to build Unit Tests that use PrivateObject

我最近從Visual Build Pro 8切換到了Visual Build Pro 9,並且在構建某些測試項目時遇到問題。 這似乎與各種單元測試有關,這些單元測試必須使用PrivateObject類來測試私有方法,這是我無法更改的。

有問題的項目引發以下(示例)錯誤:

RetrieveXmlControllerTest.cs(22,9): error CS0246: The type or namespace name 'RetrieveXmlController_Accessor' could not be found (are you missing a using directive or an assembly reference?) [C:\..\CorrectSubsystemTests.csproj]

它引用以下代碼:

_targetAccessor = new RetrieveXmlController_Accessor(new PrivateObject(_target));

我曾嘗試將Microsoft UnitTesting dll添加為DeploymentItem(像這樣),但這都無濟於事。

[TestInitialize]
[DeploymentItem("Microsoft.VisualStudio.TestTools.UnitTesting.dll")]
public void Initialise() { // Blah Blah Blah // }

如果我通過Visual Build Pro 8運行該項目,則它仍可以正確構建,但是我不知道如何。 有人有什么想法嗎?

我發現的唯一解決方案是從單元測試中刪除所有訪問器,並將其替換為對PrivateObject的調用。

因此,RetrieveXmlController_Accessor被PrivateObject取代,如下初始化PrivateObject:

_target = new RetrieveXmlController(_mockView.Object, _mockArisingFactory.Object, _mockFileHandler.Object);

然后,使用PrivateObject方法代替_Accessor提供的直接訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM