Интеграционное тестирование, как мне обернуть вызов REST, который изменяет данные в транзакции? - PullRequest
0 голосов
/ 03 августа 2010

У меня есть такой код:

[Fact]
public void should_return_at_least_3_users()
{
  Rest.Call("http://localhost/admin/users/makeasfree/3");

  var response = Rest.Call<List<Users>>("http://localhost/admin/freeusers");
  response.Count.ShouldBeGreaterThan(0);
}

Я пытался окружить это TransactionScope, но не работает. Есть ли способ откатить тестовые изменения без полного восстановления базы данных?

1 Ответ

0 голосов
/ 03 августа 2010

Маловероятно, что есть какие-либо хорошие решения этой проблемы, так как поддержка распределенных двухфазных транзакций фиксации через HTTP-запросы нарушила бы состояние HTTP-запросов без сохранения состояния.Транзакции могут существовать за интерфейсом REST, но их не следует ставить перед собой.

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

И если вы все еще не уверены, то вам следует посмотреть это видео: -).

...