2010-08-02 24 views
0

我有這樣的代碼:集成測試,如何在事務中包裝更改數據庫的REST調用?

[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

由於支持跨HTTP請求的分佈式兩階段提交事務違反了http請求的無狀態特性,所以對此問題不太可能有任何好的解決方案。事務可以位於REST接口後面,但不應該放在前面。

我意識到您可能只希望事務允許您執行集成測試,但是您真的想使用與您的生產環境不同的環境進行集成測試嗎?

如果您仍然不服氣,那麼您應該觀看this視頻:-)。