Модульный тест завершился неудачно, потому что «Экземпляр объекта не может быть отслежен, поскольку другой экземпляр с тC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Модульный тест завершился неудачно, потому что «Экземпляр объекта не может быть отслежен, поскольку другой экземпляр с т

Сообщение Anonymous »

Я провожу модульное тестирование своего кода с помощью MSTest. Я использую базу данных в памяти. Я использую следующую настройку:

Код: Выделить всё

public void Setup()
{
dbContextOptions = new DbContextOptionsBuilder()
.UseInMemoryDatabase(databaseName: "Test")
.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking)
.Options;

dbContext = new MusicAppContext(dbContextOptions);

var artist = new Artist { Id = 5, Name = "Various", IsAuthor = false };

var service = new ArtistRepository(dbContext);
var artistToFind = service.GetArtistByID(5);
if(artistToFind == null) { dbContext.Artists.Add(artist); }

artist = new Artist { Id = 14, Name = "Samuel Bjørk", IsAuthor = true };

...

artist = new Artist { Id = 45, Name = "Robert Jordan", IsAuthor = true };

service = new ArtistRepository(dbContext);
artistToFind = service.GetArtistByID(45);
if (artistToFind == null) { dbContext.Artists.Add(artist); }

dbContext.SaveChanges();
}
Это юниттест:

Код: Выделить всё

[TestMethod()]
public void UpdateArtistTest()
{
Setup();

using (dbContext)
{
Artist artist = new Artist { Id = 45, Name = "Double LP", IsAuthor = true };

var service = new ArtistRepository(dbContext);
string result = service.UpdateArtist(artist);
dbContext.SaveChanges();

Assert.AreEqual("Artist has been successfully updated!", result);
}
CleanUp();
}
Это приводит к следующему исключению:

Assert.AreEqual не удалось. Ожидается:. Фактически:.


Подробнее здесь: https://stackoverflow.com/questions/790 ... cause-anot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»