代码对学习编程的人来说至关重要。学过单元测试基础知识后,我们就可以去测试一些数据库。一些数据库和网络的请求难住了一些小伙伴,今天我们就来一起看看怎么处理吧。
在漳县等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站制作 网站设计制作定制网站制作,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,成都外贸网站建设,漳县网站建设费用合理。
之前有同学问到如何处理和数据库的交互以及网络请求,结合自己之前写单元测试的一些经验说一下:
处理数据库请求:目前我看到有两种方式。无论使用那种方式,尽量保证数据测试的时候插入,使用完成就销毁。这样换个平台依然很容易构造测试 ,也容易在 CI 系统跑。
使用 fixture 类装饰器在一个 TestCase 运行前插入数据到测试数据库。大概就是 fixture 接收一个参数 sql 文件名,然后读取数据插入数据库
在 TestCase 的 setup 里插入数据,在 teardown 里销毁。
@fixture('table.sql') class SomeTestCase: pass class SomeTestCase: def setUp(self): # insert value def tearDown(self): # destroy value
处理外部网络调用。依旧有两种方式
stub: 用来处理一些比较通用的请求,比如一个发号器代码
mock: 使用最多的替换掉网络请求的方式,几乎所有场景下都可以用。个人推荐所有网络请求和 rpc 调用等都可以用 mock.patch 来模拟返回值
@registry.stub class ZoneSeqStub(BaseStub): def id(self): return 'zone:///seqd' @stub('Seq.get_id') def get_id(self, **kwargs): return random.randint(1, 100) class TestCase: @mock.patch('somemodule.request') def test_function(self, mock_request): mock_request.return_value = {} # 构造期望的返回值,我们默认外部调用按照约定是可以工作的,不会对其测试
以上就是处理单元测试中数据库和网络请求的方法。更多Python学习推荐:PyThon学习网教学中心。
标题名称:创新互联Python教程:如何处理单元测试中的请求?
本文来源:http://www.csdahua.cn/qtweb/news8/38658.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网