Mam problem z uruchomieniem testów swojego dostępu do danych przez zmockowane repozytorium.
Używam:
Visual Studio 2010 Express
NUnit v.2.6.3
Moq v.4.0.10827.Final
Przy każdej próbie uruchomienia testów wyskakują mi takie błedy jak na screenach poniżej:
Screen1:
Screen2:
Screen3:
Wszystkie dołączone do solucji projekty mam w Framework v4.0, oraz wszystkie dll z System.Xml dołączone do projektów również w v.4.0 jak poniżej.
Sama klasa testów 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
};
//analogicznie jak powyżej tworzę pozostałych 4 pracowników
#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());
}
}
Sam sposób mockowania repositoriow robiłem na postawie tego wpisu:
http://myadventuresincoding.wordpress.com/2013/01/21/linq-to-sql-unit-testing-a-repository/
I teraz pytania:
1) Gdzie popełniam błąd? Jeżeli przestawiłem wszystkie projekty na Framework v2.0 to po pierwsze cały projekt się nie kompiluje przez brak m.in.Linq (dostęp do danych mam przez linq to object) a po drugie testy nie mogły i tak się uruchomić (z powodu braku skompilowania pod v.2.0). Jeżeli przestawię tylko projekt NUnitTests na v.2.0 to generalnie czepia się do większości bibliotek w NUnitTest References ze są w wyższych wersjach.
2) Co oznaczają na Screenie 3, te odwołania do lokalizacji "D:\code\moq\src\Source....." nie mam takiego folderu na dysku, a samą bibliotekę Moq.dll dodałem przez referencję do projektu z lokalizacji innej(folderu z innymi zewnętrznymi bibliotekami z jakich w nim korzystam).
3) Czy to może to znaczy ze te narzędzia NUnit i Moq są niekompatybilne z .Net 4.0?
Będę wdzięczny za podpowiedzi.