2016-03-17 4 views
2

Я пытаюсь создать интеграционный тест для моего User класса с помощью NUnit, что я хочу сделать, это начать transaction, обновить MySQL тестовую БД и чем откат.MySQL Начало транзакция/откат не работает в тесте интеграции

Это мой код, обновление в порядке, но у меня и db остается обновленным. Вызов моего запроса в MySQL Workbench работает отлично.

[TestFixture] 
    public class UtenteIntTest 
    { 
     private User user; 
     bool result; 

     [SetUp] 
     public void Setup() 
     { 
      //Execute query "START TRANSACTION" 
      result = false; 
     } 

     [Test] 
     public void ConstId_IdUser_User() 
     { 
      user = new User(1); 

      if ((user.id == 1) && user.username == "test" && 
       user.name == "test" && user.active == 1 
       && user.mail == "[email protected]") 
      { 
       result = true; 
      } 

      Assert.That(result, Is.EqualTo(true)); 
     } 

     [Test] 
     public void Update_User_UpdatedUser() 
     { 
      user = new User(1) 
      { 
       username = "update", 
       password = "update", 
       name = "update", 
       mail = "[email protected]", 
       attivo = 0 
      }; 
      user.Update(); 
      user = new User(1); 

      if ((user.id == 1) && user.username == "update" && 
       user.nominativo == "update" && user.active == 0 
       && user.mail == "[email protected]") 
      { 
       result = true; 
      } 

      Assert.That(result, Is.EqualTo(true)); 
     } 

     [TearDown] 
     public void Teardown() 
     { 
       //Execute query "ROLLBACK" 
     } 
    } 

ответ

3
  1. проверить, если ваша база данных поддерживает транзакции.

  2. Вы можете использовать Transactionscope для проверки транзакций. видеть. How do I test database-related code with NUnit?

+1

Я пробовал TransactionScope перед вызовом моего метода обновления, и он работает нормально. Благодаря! – SilentRage47

Смежные вопросы