Сбой теста MSTest ExpectedException - PullRequest
2 голосов
/ 06 марта 2012

Итак, я смущен этой неудачей.Я использую MSTest для запуска некоторых интеграционных тестов (поскольку есть БД, поддерживающая это, я думаю, мы бы назвали это так, а не модульное тестирование) и у меня есть такой метод тестирования:

[TestMethod()]
[ExpectedException(typeof(DbUpdateException))]
public void AddRecipe_InvalidCookingMethod_ExpectExceptionThrown()
{
   var target = GetRepository();
   var recipe = new Recipe()
   {
      Method = "Sous-vide"
   }
   target.AddRecipe(recipe);
}

иAddRecipe выглядит следующим образом:

public void AddRecipe(Recipe recipe)
{
   // validation stuff
   // automapper stuff
   try
   {
      using (var context = GetContext())
      {
         context.recipes.Add(recipe);
         context.SaveChanges();
      }
   }
   catch (DbUpdateException ex)
   {
      Console.WriteLine(ex.ToString());
      throw;
   }
}

Базовая таблица имеет внешний ключ к таблице cooking_method, и в этом случае рецепт, который я пытаюсь вставить, имеет метод приготовления, которого нет вв этой таблице, поэтому я ожидаю, что будет выдано DbUpdateException .

Тест завершается неудачно и сообщает "AddRecipe_InvalidCookingMethod_ExpectExceptionThrown Throw исключение System.Data.Entity.Infrastructure.DbUpdateException, но исключение System.Data.Ent".Ожидаемое исключение... "

Я использую коннектор MySql 6.4.4, каркас сущностей 4.3, VS 2010, если что-то из этого является полезной информацией.

Ideas?


РЕШЕНИЕ:

Спасибо Ладиславу за помощь с этим.Я переместил исходное дерево и обновил большинство , но не все ссылки.Мой тестовый проект ссылался на неправильную версию Entity Framework.

1 Ответ

1 голос
/ 07 марта 2012

Как я указывал в комментарии, это похоже на проблему, когда проекты в решении используют разные версии библиотеки EntityFramework.dll.

...