专栏首页思考的代码世界Python网络数据采集之单元测试|第11天
原创

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 条评论
登录 后参与评论

相关文章

  • Python网络数据之用爬虫测试网站|第11天

    你好我是森林
  • Python网络数据采集之图像识别与文字处理|第10天

    将图像翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现 OCR 的底层库并不多,目前很多库都是使...

    你好我是森林
  • Python基础学习02天

    你好我是森林
  • Python、Go和C++在N皇后问题上的比较(CS MS)

    Python目前是机器学习领域的主导语言,但经常被批评在执行某些任务时速度慢。在这份报告中,我们使用著名的N-Quess拼图作为基准,报告结果表明一旦编译使用N...

    Elva
  • Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引

    查询course表中,存在lectures_count字段的记录信息 db.course.find( { “lectures.lectures_count”...

    学到老
  • Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引

    查询字段是否存在 查询course表中,存在lectures_count字段的记录信息 db.course.find( { “lectures.lectur...

    学到老
  • 【每日一课】Python入门训练营第一周任务第三节视频

    Python入门训练营在线试听第一章第三节:02_Python环境安装(2) 《Python入门(初级)学习班第一期》第一周任务 请大家在学习完第一周的课程后,...

    小莹莹
  • python cvs文件处理脚本 pyt

        最近有一个需求,需要讲csv文件通过http接口post方法导入到数据库,于是写了一个脚本,主要字符编码这一块踩了不少坑,最后终于完成了,可适用wind...

    py3study
  • 一步一步学做测试工具(Spring Boot版)之三

    MC/DC(Modified Condition/Decision Coverage)是一种软件结构覆盖率测试准则, 通过最少N+1(N为Condition个数...

    cctester
  • HDUOJ---------Kia's Calculation

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/...

    Gxjun

扫码关注云+社区

领取腾讯云代金券