python unittest TestCase间共享数据(全局变量的使用)
2014-04-01 15:14
761 查看
使用unittest模块进行单元测试,涉及到以下场景
例如对某个实体,测试方法有创建,更新,实体查询,删除
使用unittest进行单元测试,可以在创建时候记录下返回的ID,在更新、删除等操作的时候就根据这个新创建的ID进行操作,这就涉及到不同的TestCase之间共享数据。
最初我在class TestCase(unittest.TestCase):里增加变量,运行创建时候设置值,但是发现在运行其他方法时候值被清空了,说明这种方法不可行。
最后只好定义全局变量,但是在局部用的时候需要使用globals()['newid'] 来操作全局变量。
例如以下例子,创建时候获取ID,并设置,然后get的时候直接测刚才生成的ID,测delete时候就可以把这条数据删除掉了
例如对某个实体,测试方法有创建,更新,实体查询,删除
使用unittest进行单元测试,可以在创建时候记录下返回的ID,在更新、删除等操作的时候就根据这个新创建的ID进行操作,这就涉及到不同的TestCase之间共享数据。
最初我在class TestCase(unittest.TestCase):里增加变量,运行创建时候设置值,但是发现在运行其他方法时候值被清空了,说明这种方法不可行。
最后只好定义全局变量,但是在局部用的时候需要使用globals()['newid'] 来操作全局变量。
例如以下例子,创建时候获取ID,并设置,然后get的时候直接测刚才生成的ID,测delete时候就可以把这条数据删除掉了
newid = None class MonTemplateCase(unittest.TestCase): base = "http://localhost:8080/" def test_moncluster_temp_create(self): json = {"monitor_template":{"name":"testname1","desc":"desc2","dcid":"1","host_info":{"check_interval":"1","check_period":"5","max_check_attempts":"1","notification_interval":"1","notifications_enabled":"1","retry_interval":"1","contacts":"[1]"},"service_info":[{"id":"14","max_check_attempts":"1","notification_interval":"1","notifications_enabled":"1","retry_interval":"1","contacts":"[1]","check_period":"5","service_description":"CPU","check_command":"14!80 90","check_interval":"5"}]}} headers = {'content-type': 'application/json'} r = requests.post(self.base + "api/moncluster/template", data=simplejson.dumps(json),headers=headers) result = simplejson.loads(r.text) print "create result:", result if result['action'] is False: print result else: globals()['newid'] = result['data'] self.assertEqual(True, result['action']) def test_comcluster_temp_get(self): global newid if newid is None: raise Exception('id is none cannot get') f = urllib2.urlopen(self.base + "api/moncluster/template/%s" % str(newid)) result = simplejson.loads(f.read()) print "get result:",result self.assertEqual(True, result['action'])
相关文章推荐
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- Python 进程之间共享数据(全局变量)
- 线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用,不过要注意的是线程间需要做好同步。
- Python 进程之间共享数据(全局变量)
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- android 少用static全局变量共享数据讨论
- 意图(Intent)讲解3:安卓使用意图(Intent)全局变量方法传递数据
- python全局变量的使用
- python单元测试之unittest框架使用总结
- Android中用Application类实现全局数据变量的使用
- Python单元测试框架unittest使用方法讲解
- [Android]使用全局变量传递数据
- python 在函数中使用全局变量的注意事项
- 使用共享变量实现主报表及子报表之间的数据共享
- python变量之全局变量与局部变量的使用
- python3函数内全局变量使用global
- Python 全局变量的使用
- 5. Android使用意图传递数据之全局变量传递-Application类
- Python unittest excel数据驱动 写入
- python3 动态模块导入与全局变量使用