2012-05-14 17 views
5

Zajrzałem do google i stack over flow i przeczytać wszystkie posty dotyczące tego, jak uzyskać InternalsVisibleTo do pracy.InternalsVisibleBrak pracy dla MSTest

Ale to nie działa dla mnie.

Prosimy nie głosować na dół na to pytanie, ponieważ próbowałem mój najlepszy wygląd i wdrożenia odpowiedzi na forach ..

Mój kod wygląda następująco:

* projekt Wewnątrz TestInternal *

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

      retval = new MyProviderClass().Bar(); 

      Assert.AreEqual(true,retval); 
     } 

    } 
} 

* Wewnątrz projektu Provider *

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

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

     } 

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

     } 
    } 
} 

Otrzymuję następujący błąd w mojej klasie testu.

Error 1 „Provider.MyProviderClass” nie zawierają definicji „Bar” i nie metodę rozszerzenia „bar” akceptowanie pierwszego argumentu typu „Provider.MyProviderClass” można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

Proszę dać mi znać jak mogę użyć InternalsVisibleTo prawidłowo, więc mogłem prawidłowo przetestować wewnętrzny metody w MyProviderClass.

Dzięki

+0

Czy jesteś pewien, że masz projekt Provider, o którym mowa w TestInternal? Czy najpierw próbowałeś zbudować projekt Provider? Czy podpisano projekt Provider? – cre8or

+0

Dostawca odwołuje się do TestInternal. Z powodzeniem * najpierw * zbudowałem projekt Provider. Projekt dostawcy NIE jest podpisany. dzięki .. –

+0

Zgodnie z dokumentacją MS oba zespoły powinny być niepodpisane lub podpisane. –

Odpowiedz

10

Zakładając, że po prostu skopiowany i wklejony dokładny kod w pytaniu, jest to prosty literówka. Zauważyłem, że twój obszar nazw w zespole testowym to TestInteral bez "N". A twoja deklaracja InternalsVisibleTo ma ostatnie „n”:

[assembly: InternalsVisibleTo("TestInternal")] 

to chyba wszystko jest.

+0

Ładne, takie błędy są najbardziej niewykrywalne :-) – cre8or

+0

Dzięki ... to było tak trudne dla mnie, aby zobaczyć .. dobry połów –

+0

ten kod działa teraz .. dzięki dla wszystkich odpowiedział .. to może być używany jako samouczek, który próbuje go po raz pierwszy. –

Powiązane problemy