2012-05-14 65 views
5

我已經調查googlestack over flow和閱讀了有關如何獲得InternalsVisibleTo工作的所有信息。InternalsVisibleTo不工作的MSTest的

但它不是爲我工作。

請不要往下投這個問題,因爲我已經盡了全力尋找和落實論壇的答案..

我的代碼如下:

*內部TestInternal項目*

namespace TestInteral 
{ 
    [TestClass] 
    public class MyProviderTest 
    { 
     [TestMethod] 
     public void TestBar() 
     { 
      bool retval = false; 

      retval = new MyProviderClass().Bar(); 

      Assert.AreEqual(true,retval); 
     } 

    } 
} 

*內部提供項目*

[assembly: InternalsVisibleTo("TestInternal")] 
namespace Provider 
{ 

    public class MyProviderClass 
    { 
     internal bool Bar() 
     { 
      return true; 

     } 

     private void UseBar() 
     { 
      bool retval = Bar(); 

     } 
    } 
} 

我得到在我的測試類下面的錯誤。

錯誤1「Provider.MyProviderClass」不包含「酒吧」的定義,並沒有擴展方法「酒吧」接受型「Provider.MyProviderClass」的第一個參數可以找到(是否缺少using指令或程序集引用?)

請讓我知道我怎麼能正確使用InternalsVisibleTo,所以我可以正確測試在MyProviderClass的內部方法。

感謝

+0

你確定你已經提供項目TestInternal引用?你有沒有嘗試先建立Provider項目?供應商項目是否簽署? – cre8or

+0

提供程序在TestInternal中引用。我成功*首先*建立供應商項目。提供者項目未簽名。感謝.. –

+0

根據MS文檔提供組件應該是無符號數 –

回答

10

假設你剛纔複製並粘貼您的確切代碼到這個問題,這是一個簡單的拼寫錯誤。我注意到測試程序集上的命名空間是TestInteral,沒有'N'。而你的InternalsVisibleTo聲明有最後一個'N':

[assembly: InternalsVisibleTo("TestInternal")] 

這可能就是這樣。

+0

尼斯,這樣的錯誤是最難以追蹤那些:-) – cre8or

+0

謝謝...這是這麼辛苦,我看到了..好抓 –

+0

這個代碼是現在工作..感謝所有的迴應。這可以作爲第一次嘗試它的教程。 –