国产探花免费观看_亚洲丰满少妇自慰呻吟_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

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪征市| 福海县| 澎湖县| 涿鹿县| 临澧县| 岱山县| 内丘县| 灵石县| 景德镇市| 秦皇岛市| 安达市| 佳木斯市| 东光县| 乡城县| 龙海市| 旅游| 平潭县| 新乐市| 垣曲县| 博乐市| 尚志市| 松滋市| 宜宾县| 温泉县| 香格里拉县| 搜索| 德江县| 阿鲁科尔沁旗| 环江| 梁平县| 德令哈市| 阜平县| 蒲城县| 交城县| 田阳县| 于田县| 新建县| 桓仁| 宣汉县| 肇州县| 香格里拉县|