0

我有这样的代码:

[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 来解决这个问题,但不起作用。有什么方法可以在不进行整个数据库还原的情况下回滚测试更改?

4

1 回答 1

0

这个问题不太可能有任何好的解决方案,因为支持跨 HTTP 请求的分布式两阶段提交事务会违反 http 请求的无状态性质。事务可以存在于 REST 接口之后,但不应放在前面。

我意识到您可能只希望事务允许您进行集成测试,但您是否真的希望使用与生产环境不同的环境进行集成测试。

如果您仍然不相信,那么您应该观看视频 :-)。

于 2010-08-03T03:07:16.320 回答