国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

pyunit

2019-11-14 17:48:42
字體:
來源:轉載
供稿:網友

PyUnit提供的動態方法,只編寫一個測試類來完成對整個軟件模塊的測試,這樣對象的初始化工作可以在setUp()方法中完成,而資源的釋放則可以在tearDown()方法中完成。

使用PyUnit可以像xunit那樣設置一個個函數,分別測試不同的數據和不同的用例。

 

例如,構建下面的測試類,測試遠程API服務

 1  class Request: 2      def __init__(self): 3          pass 4      def request(self,RequestMethod,RequestURL,param,requestHeaders): 5          return Request.__dict__[RequestMethod](self,RequestURL,param,requestHeaders) 6      def get(self,RequestURL,param,requestHeaders): 7          RequestURL=RequestURL+"?"+urllib.parse.urlencode(param) 8          req = url.Request(RequestURL) 9          result = url.urlopen(req).read()10          return result11      def post(self,RequestURL,param,requestHeaders):12          postdata= json.dumps(param)13          req = url.Request(14              url = RequestURL,15              data = postdata.encode("utf-8"),16              headers = requestHeaders17          )   18          result = url.urlopen(req).read()19          return result

想要知道其中執行結果,構造下面的測試類

 1  class APITest(unittest.TestCase): 2      def setUp(self): 3          self.r=Request() 4      def test_UserPermisionQueryPost(self): 5          RequestURL="http://10.125.198.137/permission/table/listUserTablePermissions.json" 6          RequestMethod="post" 7          requestHeaders={"Accept":"*/*",} 8          param={ 9          "tablePermissionParam": {10             "currentPage": 1,11             "pageSize": 50,12             "tablename": "s_auction_auctions",13             "usernames": [14                 "067765"15             ]16         }17         }18          expectResult=b'{"returnCode":"0","returnValue":[{"id":2067,"username":"067765","tablename":"s_auction_auctions","packagename":"yunti1.taobao","readlevelpermission":2,"permissiontime":19  "2014-03-18 06:02:10","distabletime":"2015-03-18 06:02:08","permissionstatus":1,"gmtCreate":"2014-03-18 06:02:10","gmtModify":"2014-03-18 06:02:10","columns":["id","title"]}]}'20          self.assertEqual(self.r.request(RequestMethod,RequestURL,param,requestHeaders),expectResult)21      def test_UserPermisionQueryGet(self):22          RequestMethod="get"23          RequestURL="http://10.125.198.137/permission/table/listUserTablePermissions"24          param={"tablename":"s_auction_auctions"}25          expectResult=b'{"returnCode":"0","returnValue":[{"id":2067,"username":"067765","tablename":"s_auction_auctions","packagename":"yunti1.taobao","readlevelpermission":2,"permissiontime":26  "2014-03-18 06:02:10","distabletime":"2015-03-18 06:02:08","permissionstatus":1,"gmtCreate":"2014-03-18 06:02:10","gmtModify":"2014-03-18 06:02:10","columns":["id","title"]},{"id":2066,      27  "username":"068521","tablename":"s_auction_auctions","packagename":"yunti1.taobao","readlevelpermission":2,"permissiontime":"2014-03-18 06:02:10","distabletime":"2015-03-18 06:02:08",        28  "permissionstatus":1,"gmtCreate":"2014-03-18 06:02:10","gmtModify":"2014-03-18 06:02:10","columns":["id","title"]}],"count":2}'29          self.assertEqual(self.r.request(RequestMethod,RequestURL,param,""),expectResult)

PyUnit模塊中定義了一個名為main的全局方法,使用它可以很方便地將一個單元測試模塊變成可以直接運行的測試腳本,main()方法使用TestLoader類來搜索所有包含在該模塊中的測試方法,并自動執行它們。如果Python程序員能夠按照約定(以test開頭)來命名所有的測試方法,那就只需要在測試模塊的最后加入如下幾行代碼即可:

if __name__=='__main__':     unittest.main()

或者通過自己添加的方式決定哪些用例需要真正的被執行

 def suite():     suite = unittest.TestSuite()     suite.addTest(APITest("test_UserPermisionQueryGet"))     suite.addTest(APITest("test_UserPermisionQueryPost"))     runner = unittest.TextTestRunner()     runner.run(suite)

當選擇main函數作為入口的時候,還可以獲取到幫助信息

python3 ./Request.py  -hUsage: Request.py [options]Options:  -h, --help      show this help message and exit  -v, --verbose   Verbose output  -q, --quiet     Quiet output  -f, --failfast  Stop on first fail or error  -c, --catch     Catch ctrl-C and display results so far  -b, --buffer    Buffer stdout and stderr during tests

直接在命令行中指定testSuite.testcase

python3 ./Request.py APITest.test_UserPermisionQueryGet.----------------------------------------------------------------------Ran 1 test in 0.179sOK

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 社会| 乌苏市| 黎城县| 宣城市| 凤城市| 高平市| 六盘水市| 南昌市| 东宁县| 三原县| 大港区| 肥西县| 赣州市| 门头沟区| 扎兰屯市| 庆安县| 通江县| 临颍县| 怀仁县| 商水县| 彭山县| 南安市| 库伦旗| 博罗县| 隆林| 绍兴市| 盈江县| 清水河县| 阳信县| 宾川县| 邵东县| 钟祥市| 南靖县| 财经| 孝感市| 黄浦区| 浪卡子县| 胶州市| 海林市| 陈巴尔虎旗| 长岭县|