第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

依賴于數(shù)據(jù)的工程如何進行單元測試?

依賴于數(shù)據(jù)的工程如何進行單元測試?

慕田峪9158850 2019-04-07 11:18:36
做一個項目勢必要進行單元測試以保證程序的健壯性,以便保證版本迭代時功能正常。但是如果一個程序(如CMS等)本身就是依賴于數(shù)據(jù)庫的,應該如何在保證不會破壞數(shù)據(jù)庫的情況下進行單元測試呢?舉例:訪問?id=1的頁面,先查詢sqlSELECT*FROM`data`WHERE`ID`=1,然后將其賦值給$data->ID、$data->Title這些屬性;要保證這些屬性的值正常。然后,根據(jù)一些信息算出$data->Hash,如$data->Hash=md5($data->ID),這些計算的值也要正常。接著,刪除id=1的文章,要sqlDELETEFROM`data`WHERE`ID`=1,必須保證ID所在行被刪除。再其次,后臺發(fā)布一篇文章,必須使得數(shù)據(jù)庫內(nèi)多出ID=2,內(nèi)容為設定值的文章。但是HTML代碼內(nèi)容不一定要相同,可以允許諸如多余的空格、換行。還需要模擬XML-RPC協(xié)議發(fā)表一篇文章。像以上的內(nèi)容,應該如何進行單元測試呢?知乎同名問題:http://www.zhihu.com/question/28278690
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經(jīng)驗 獲得超10個贊

用單獨的數(shù)據(jù)庫運行測試,每次測試開始前都清空數(shù)據(jù)庫,并重新生成測試數(shù)據(jù)。
另一種做法是每次生成測試數(shù)據(jù)的時候記錄下來生成的數(shù)據(jù)的ID,然后在完成測試后刪除本次生成的數(shù)據(jù),而不是每次都清空數(shù)據(jù)庫。這種方案比較適合既需要自動測試,又需要手動測試的情況,自動測試不會導致手動測試時添加的數(shù)據(jù)被刪除。
測試最好別依賴于具體的值(比如你的例子的ID=1),最好用單獨的函數(shù)來創(chuàng)建每一條測試數(shù)據(jù)(比如generateAccount和generateArticle),這些函數(shù)返回創(chuàng)建出來的數(shù)據(jù)的ID,否則如果硬編碼ID的話,在添加或移除測試的時候會很麻煩。
                            
查看完整回答
反對 回復 2019-04-07
  • 2 回答
  • 0 關注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號