banner

帮助中心 > 新闻资讯 >Python网络数据采集之单元测试|第11天

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

发布时间:2018-07-04

User:你好我是森林
Date:2018-04-19
Mark:《Python网络数据采集》

网络采集系列文章

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的单元测试,两者组合是最佳拍档。

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

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

知识星球

相关推荐