Ok znalazłem rozwiązanie:
http://4programmers.net/Forum/C_i_.NET/120621-dodana_referencja_do_*dll_nie_jest_rozpoznawana_przy_kompilacji
moge już uruchomić cały program ale nadal mam problem z testami. Najpierw po Buildzie brakowało Castle.Core.dll, która była w paczce Moq ale w katalogu Silverlight, a po dodaniu tej biblioteki krzyczy ze brakuje mu System.Xml, chociaz jest dodana w Reference:
cały komunikat błędu w oknie uruchomieniowym NUnit, po uruchomieniu testów:
NUnitTests.Data_Akcess.DanePodstawowe.PracownikRepositoryTest.AddTest:
SetUp : System.IO.FileNotFoundException : Could not load file or assembly 'System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. Nie można odnaleźć określonego pliku.
i jeszcze szczegóły:
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.CreateFields(ClassEmitter emitter, Type proxyTargetType)
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.Init(String typeName, ClassEmitter& emitter, Type proxyTargetType, FieldReference& interceptorsField, IEnumerable`1 interfaces)
at Castle.DynamicProxy.Generators.InterfaceProxyWithoutTargetGenerator.GenerateType(String typeName, Type proxyTargetType, Type[] interfaces, INamingScope namingScope)
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(Type proxyTargetType, Type[] interfaces, ProxyGenerationOptions options)
at Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, IInterceptor[] interceptors)
at Moq.Proxy.CastleProxyFactory.CreateProxy[T](ICallInterceptor interceptor, Type[] interfaces, Object[] arguments) in d:\Code\moq\src\Source\Proxy\CastleProxyFactory.cs:line 78
at Moq.Mock`1.<InitializeInstance>b__0() in d:\Code\moq\src\Source\Mock.Generic.cs:line 138
at Moq.PexProtector.Invoke(Action action) in d:\Code\moq\src\Source\PexProtector.cs:line 56
at Moq.Mock`1.InitializeInstance() in d:\Code\moq\src\Source\Mock.Generic.cs:line 136
at Moq.Mock`1.OnGetObject() in d:\Code\moq\src\Source\Mock.Generic.cs:line 153
at Moq.Mock`1.get_Object() in d:\Code\moq\src\Source\Mock.Generic.cs:line 131
at NUnitTests.Data_Akcess.DanePodstawowe.PracownikRepositoryTest.Setup() in D:\Moje dokumenty\Dysk Google\miniMES_v2.0\-=Roboczy Folder Projekt-X=-\Project_X\NUnitTests\Data Akcess\DanePodstawowe\PracownikRepositoryTest.cs:line 23
moja klasa testu wygląda tak:
[TestFixture]
public class PracownikRepositoryTest
{
private Mock<IDanePodstawoweDataContext> mockPracownikDataContext;
private IDanePodstawoweDataContextWrapper stubdataContextWrapper;
private IPracownikRepository pracownikRep;
[SetUp]
public void Setup()
{
mockPracownikDataContext = new Mock<IDanePodstawoweDataContext>();
stubdataContextWrapper = new StubDanePodstawoweDataContextWrapper(mockPracownikDataContext.Object);
pracownikRep = new PracownikRepository(stubdataContextWrapper);
#region Tworzenie pojedynczych pracowników p1, p2, p3, p4, p5
Pracownik p1 = new Pracownik
{
idPracownika = 5, Imie1 = "Admin", Nazwisko = "Adminowicz", Login = "Admin Adminowicz", mailFirmowy = "[email protected]",
telFirmowy1 = "123456789", idPrzelozonego = 113, idDzialu = 4, idStanowiska = 1, DataZatrudnienia = new DateTime(2014,05,19),
idPlci = 1
};
Pracownik p2 = new Pracownik
{
idPracownika = 58, Imie1 = "Kierownik_E", Nazwisko = "Kierowniczy", Login = "Kierownik_E Kierowniczy",
mailFirmowy = "[email protected]", telFirmowy1 = "506784001", idPrzelozonego = 113, idDzialu = 2,
idStanowiska = 4, DataZatrudnienia = new DateTime(2013,01,01), idPlci = 1
};
Pracownik p3 = new Pracownik
{
idPracownika = 59, Imie1 = "Technolog_E", Nazwisko = "Technologowicz", Login = "Technolog_E Technologowicz",
mailFirmowy = "[email protected]", telFirmowy1 = "506784002", idPrzelozonego = 113, idDzialu = 2,
idStanowiska = 2, DataZatrudnienia = new DateTime(2013,01,02), idPlci = 1
};
Pracownik p4 = new Pracownik
{
idPracownika = 65, Imie1 = "Pracownik1_E", Nazwisko = "Ariacki", Login = "Pracownik1_E Ariacki",
mailFirmowy = "[email protected]", telFirmowy1 = "506784008", idPrzelozonego = 58, idDzialu = 2,
idStanowiska = 20, DataZatrudnienia = new DateTime(2014, 05, 27), idPlci = 2
};
Pracownik p5 = new Pracownik
{
idPracownika = 113, Imie1 = "Prezes", Nazwisko = "Prezestowicz", Login = "Prezes Prezestowicz",
mailFirmowy = "[email protected]", telFirmowy1 = "506784028", idPrzelozonego = 113, idDzialu = 13,
idStanowiska = 16, DataZatrudnienia = new DateTime(2013, 01, 28), idPlci = 1
};
#endregion
List<Pracownik> pracownicy = new List<Pracownik> { p1, p2, p3, p4, p5 };
mockPracownikDataContext.Setup(x => x.Pracownicy()).Returns(new StubPracownikTable(pracownicy));
}
[Test]
public void AddTest()
{
Assert.AreEqual(5, pracownikRep.Count());
Pracownik nowy = new Pracownik
{
idPracownika = 1, Imie1 = "Nowy", Nazwisko = "Nowiński", Login = "Nowy Nowiński", mailFirmowy = "[email protected]",
telFirmowy1 = "506000666", idPrzelozonego = 113, idDzialu = 4, idStanowiska = 1,
DataZatrudnienia = new DateTime(2014, 06, 26), idPlci = 1
};
pracownikRep.Add(nowy);
Assert.AreEqual(6, pracownikRep.Count());
}
}
EDIT:
I jeszcze jeden trop o którym zapomniałem i nie wiem czy ma związek (bo rzucany jest wyjątek FileNotFoundException a ja w StubPracownikTable w miejscu o któtym pisze niżej wypycham NotImplementationException).
Mianowaicie, cały sposób testowania Reposytorium ściągnąłem z tego bloga:
http://myadventuresincoding.wordpress.com/2013/01/21/linq-to-sql-unit-testing-a-repository/
i tam w klasie StubEmployeeTable w liniach 34-47 są 3 właściwości:
public Type ElementType
public System.Linq.Expressions.Expression Expression
public IQueryProvider Provider
które z internalList wywołują metodę .AsQueryable(). ale takiej metody nie ma w typie List<T>, o co tu może chodzi?
EDIT:
wystarczy dodać using System.Data.Linq; i magicznie pojawiają się kolejne metody w typie List<T>
W swojej klasie StubPracownikTable z gettera tych 3 właściwości wypycham właśnie NotImplementationException.
PS. Zapytałbym autora ale angielski mam na poziomie odbioru, i to tylko ze stringa ;)