Błąd przy Unit Testach

0

Witam,

Zrobiłam do swojej aplikacji najprostszy test:

var controller = new UsersController();
var result = controller.Details(2) as ViewResult;
Assert.AreEqual("Details", result.ViewName);

I po jego uruchamieniu pojawia mi się błąd:
System.InvalidOperationException: The model backing the 'DataContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).

Dodam, że podczas działania aplikacji, nie wyskakuje mi żaden błąd, wszystko działa poprawnie.

Bardzo proszę o pomoc

0

A gdzie tego DataContext używasz? W kontrolerze? I jak go mockujesz w testach?
Generalnie za mało kodu.

0

Kontroler:
tutaj tworze repozytorium: private readonly Repository<User, int> repository = new Repository<User, int>();
w repozytorium tworzy się nowy DataContext

A to Detail w kontrolerze:

User users = repository.Single((int)id);

        UserDetailsViewModel detailsViewModel =
        Mapper.Map<User, UserDetailsViewModel>(users);

        detailsViewModel.Bookings = repositoryBookings.FindBy(c => c.UserID==(int)id).ToList();

Nie mockuje, to wzięłam taki najprostszy test jaki znalazłam, w innym gdzie mockuje repository tez mi nie działa, z tym, że wtedy też mockuje tylko repository, a contextu nie, bo nie wiem jak, skoro jest tworzony w repository

0
Barbara napisał(a):

Nie mockuje, to wzięłam taki najprostszy test jaki znalazłam, w innym gdzie mockuje repository tez mi nie działa, z tym, że wtedy też mockuje tylko repository, a contextu nie, bo nie wiem jak, skoro jest tworzony w repository

Dlatego właśnie stosuje się dependency injection, a nie tworzy obiekty na sztywno w kodzie.
Wstrzykuj context przez konstruktor, wtedy będziesz mogła go mockować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1