單元測試數據庫 -- 使用事物回滾測試


  如果想保證業務層測試的正確性,那么我們必須要對數據庫進行測試。但是目前我還沒想到在內存中去進行數據庫的測試,只能進行集成測試。那么下面來講一下關於數據層的測試。

因為在數據庫的內部我們無法控制我們只能通過黑盒測試,給予值然后返回我們想要的預期效果來判斷是否成功。但是在測試中我們必須要保證單一性,比喻在測試Add的時候當我們添加一條數據那么數據庫可能就會產生一條臟數據,如果每天運行一次那么后果也是可怕的,但是有人說產區添加和刪除一起測,我覺得也不合理,因為這樣一來你一個測試既有添加又有刪除不可取。再說如果是修改呢你怎么辦。所以你需要在測試時候采取回滾機制。

使用TransactionScope回滾數據修改

下面我們看一個例子

首先我們定義一個TransactionScope

private TransactionScope _scope;

然后在setup中進行初始化

[SetUp]
        public void SetUp()
        {
            this._scope = new TransactionScope(TransactionScopeOption.Required);
        }

然后我們就可以測試看下面代碼

復制代碼
        [Test]
        public void Create_CreateSuccessful_ReturnsTrue()
        {
            var userInfo = CreateUserInfo();
            var userDal = new UserDal();
            bool result = userDal.Create(userInfo);
            Assert.IsTrue(result);
        }
復制代碼

最后我們在teardown中釋放這個事物

[TearDown]
        public void TearDown()
        {
            this._scope.Dispose();
        }

ok這樣我們就完成了對數據層的測試。下面我們看測試的結果

不過有些屬於soa的引用我們只需要保證配置正確即可。

 

 

出處:http://www.cnblogs.com/LipeiNet/p/5062464.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM