我有这样的代码:
[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包围它但不起作用。 有没有办法在不进行整个数据库恢复的情况下回滚测试更改?
答案 0 :(得分:0)
对于此问题,不太可能有任何好的解决方案,因为跨HTTP请求支持分布式两阶段提交事务会违反http请求的无状态特性。事务可以存在于REST接口之后,但它们不应放在前面。
我意识到您可能只希望事务允许您进行集成测试,但您是否真的希望使用与您的生产环境不同的环境进行集成测试。
如果您仍然不相信,那么您应该观看this视频: - )。