中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

DotNetCore跨平(ping)臺(tai)~Moq框架實現(xian)模擬(ni)測(ce)試

回到目錄

當我們進行軟件開發時,一般會寫單元測試,而對于業務情景來說,一般是測試它的業務邏輯準確性,對于你的測試數據是否來自數據庫還是文件,是(shi)否為(wei)真實還是(shi)模(mo)擬,并不是(shi)很關心!我關心的就是(shi)我的業(ye)務(wu)邏輯是(shi)否正(zheng)確(que)!

所以(yi)(yi)我們的(de)單元測(ce)試(shi)在(zai)調(diao)用(yong)(yong)底層接(jie)口時(shi),尤其是(shi)(shi)數據(ju)持久層的(de)接(jie)口時(shi),一般可(ke)以(yi)(yi)使(shi)用(yong)(yong)mock的(de)方式,即模(mo)擬一個接(jie)口,期(qi)望的(de)參(can)數和(he)期(qi)望的(de)結果(guo)就(jiu)夠了,而沒有必要真正去連接(jie)數據(ju)庫,事實上,在(zai)業務測(ce)試(shi)里,使(shi)用(yong)(yong)真實的(de)數據(ju)庫沒有什么意義!無非是(shi)(shi)加大測(ce)試(shi)的(de)復(fu)雜度!

一(yi)個不(bu)錯的mock測試工具 Moq,它在nuget上已經(jing)有了正式版,大家可以下載使用(yong)

下(xia)面介紹如何使(shi)用這個(ge)工具,我們(men)(men)以一(yi)個(ge)最簡單的例(li)子來說(shuo)一(yi)下(xia),例(li)如有(you)一(yi)個(ge)接口(kou),里面一(yi)個(ge)方法,方法有(you)輸入參數和返(fan)回值,我們(men)(men)可(ke)以這樣(yang)去模擬它的實現(xian)!

一個(ge)標(biao)準的(de)接口,它的(de)實現(xian)可能是(shi)從數據庫返回一個(ge)集合,而在測試用(yong)例里,我只使用(yong)moq來干這事,你(ni)完全可以不寫它的(de)實現(xian),先進行業(ye)務(wu)代碼編寫,這就是(shi)TDD!

    public interface IReport_BalanceStatementDao
    {
          IEnumerable<BalanceSheetReport> GetClosingBalance(int companyId, DateTime relateDate);
    }

測試用例可以這樣去設計

            _report_BalanceStatementDao = new Moq.Mock<IReport_BalanceStatementDao>();
            _report_BalanceStatementDao.Setup(p => p.GetClosingBalance(270, new DateTime(2017, 10, 31))).Returns(() =>
            {
                return _balanceSheetReportList;
            });
            _report_BalanceStatementDao.Setup(p => p.GetClosingBalance(270, new DateTime(2017, 9, 30))).Returns(() =>
            {
                return _balanceSheetReportList;
            });
            _balanceStatementService = new BalanceStatementService(_report_BalanceStatementDao.Object);

運行你的測試用例,我們事實上并不GetClosingBalance是否(fou)實現,我們只(zhi)關心它(ta)的(de)輸入參(can)數(shu)和返回(hui)值,只(zhi)要業務層調(diao)用它(ta)時,輸入參(can)數(shu)匹配它(ta)就可以返回(hui)遇期的(de)結(jie)果!這才是

最重要的事!

感謝各位的閱讀!

CI、CD我們(men)還在繼續!

回到目錄

 

posted @ 2017-12-28 17:26  張占嶺  閱讀(1205)  評論(0)    收藏  舉報