Python网络数据采集之单元测试|第11天

User:你好我是森林

Date:2018-04-19

Mark:《Python网络数据采集》

原文:https://chensenlin.cn/posts/62394/

网络采集系列文章

Python网络数据采集之创建爬虫

Python网络数据采集之HTML解析

Python网络数据采集之开始采集

Python网络数据采集之使用API

Python网络数据采集之存储数据

Python网络数据采集之读取文件

Python网络数据采集之数据清洗

Python网络数据采集之处理自然语言

Python网络数据采集之登录采集处理

Python网络数据采集之图像识别与文字处理

测试简介

运行一套测试方法能够保证你的代码按照既定的目标运行,不仅可以节约你的时间,减少你对bug 的忧虑,还可以让新版本升级变得更加简单。

单元测试的特点:

  1. 每个单元测试用于测试一个零件(component)功能的一个方面。
  2. 每个单元测试都可以完全独立地运行,一个单元测试需要的所有启动(setup)和卸载 (teardown)都必须通过这单元测试本身去处理。单元测试不能对其他测试造成干扰,而且不论按何种顺序排列,它们都必须能够正常地运行。
  3. 每个单元测试通常至少包含一个断言(assertion)。
  4. 单元测试与生产代码是分离的。

Python单元测试

Python的单元测试模块unittest,所有标准版Python安装后都有。例如:

import unittest

class TestAddition(unittest.TestCase):
    def setUp(self):
        print("Setting up the test")
    def tearDown(self):
        print("Tearing down the test")
    def test_twoPlusTwo(self):
        total = 2+2
        self.assertEqual(4, total)
if __name__ == '__main__': 
    unittest.main()

setUp()tearDown()在每个测试的开始和结束都会运行一次,而不是把类中所有测试作为一个整体在开始或结束时各运行一次。

Selenium单元测试

Selenium 不要求单元测试必须是类的一个函数,它的 “断言”语句也不需要括号,而且测试通过的话不会有提示,只有当测试失败时才会产生信息提示:

 driver = webdriver.PhantomJS()
 driver.get("http://en.wikipedia.org/wiki/Monty_Python")
 assert "Monty Python" in driver.title
 driver.close()

Selenium 单元测试的时候需要比写 Python 单元测试更加随意,断言语句甚至可以整合到生产代码中,非常适合某些条件不能满足就中断代码的需求。

Python单元测试与Selenium单元测试的选择

Selenium 可以轻易地获取网站的信息,而单元测试可以评估这些信息是否满足通过测试的条件。因此,你没有理由拒绝把 Selenium 导入 Python的单元测试,两者组合是最佳拍档。

欢迎你免费加入我的星球,一起分享,共同成长。

知识星球

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

八款前端开发人员更轻松的实用在线工具

40830
来自专栏前端架构

批量删除腾讯专栏文章的脚本

批量删除腾讯专栏文章的脚本,腾讯云专栏签约后,抓取文章不插入原来连接,这个我怎么评价了呢!只好删除,走人了

38030
来自专栏Jerry的SAP技术分享

JavaScript的语音识别

有没有想过给您的网站增添语音识别的功能?比如您的用户不用点鼠标,仅仅通过电脑或者手机的麦克风发布命令,比如"下拉到页面底部”,或者“跳转到下一页”,您的网站就会...

36010
来自专栏美团技术团队

iOS App冷启动治理:来自美团外卖的实践

冷启动时长是App性能的重要指标,作为用户体验的第一道“门”,直接决定着用户对App的第一印象。美团外卖iOS客户端从2013年11月开始,历经几十个版本的迭代...

20220
来自专栏Python中文社区

用Python获取磁力种子

陈键冬,Python中文社区专栏作者,pyecharts开源项目核心开发者,github id:chenjiandongx

44480
来自专栏腾讯Bugly的专栏

《iOS APP 性能检测》

| 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能...

1.8K50
来自专栏程序你好

安卓开发中的Model-View-Presenter(MVP模式)

在软件开发行业中找到一个Android开发的架构标准是相当复杂的。确实,在一段时间内,一个非常基础的MVP已经被提出来打破 God-Object (完全负责所有...

12330
来自专栏北京马哥教育

用Python获取磁力种子

现在我们使用迅雷等工具下载资源的时候,基本上都只需要一个叫做磁力链接的东西就可以了,非常方便。

58730
来自专栏游戏杂谈

【转】Android开发在路上:少去踩坑,多走捷径

本文是我订阅“腾讯大讲堂”公众帐号时,他们推送的一篇文章,但在腾讯大讲堂官网上我并没有找到这篇文章,不过其它专门“爬”公众号文章的网站倒是有。我觉得写的很不错。...

12130
来自专栏全华班

微信、支付宝、银联支付sdk组件

该组件为封装了 微信,支付宝,银联支付, 一键快速集成,几行代码即可集成 微信,支付宝,银联支付。

31820

扫码关注云+社区

领取腾讯云代金券