如果想保證業務層測試的正確性,那么我們必須要對數據庫進行測試。但是目前我還沒想到在內存中去進行數據庫的測試,只能進行集成測試。那么下面來講一下關於數據層的測試。
因為在數據庫的內部我們無法控制我們只能通過黑盒測試,給予值然后返回我們想要的預期效果來判斷是否成功。但是在測試中我們必須要保證單一性,比喻在測試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

