小编Ale*_*son的帖子

用于Web Scraping的测试驱动开发(TDD)

摘要

我有一个基于Python的网络抓取宠物项目,我正在尝试实现一些TDD,但我很快就遇到了问题.单元测试需要互联网连接,以及下载html文本.虽然我知道实际的解析可以使用本地文件完成,但是一些方法用于简单地重新定义URL并再次查询网站.这似乎打破了TDD的一些最佳实践(引用:罗伯特·马丁的清洁代码声称测试应该在任何环境中都可以运行).虽然这是一个Python项目,但我遇到了一个类似的问题,使用R进行Yahoo Finance抓取,我确信这种事情与语言无关.至少,这个问题似乎违反了TDD的主要指导原则,即测试应该快速运行.

tldr; 在TDD中是否有处理网络连接的最佳实践?

可重复的例子

AbstractScraper.py

from urllib.request import urlopen
from bs4 import BeautifulSoup


class AbstractScraper:

    def __init__(self, url):
        self.url = url
        self.dataDictionary = None

    def makeDataDictionary(self):
        html = urlopen(self.url)
        text = html.read().decode("utf-8")
        soup = BeautifulSoup(text, "lxml")
        self.dataDictionary = {"html": html, "text": text, "soup": soup}

    def writeSoup(self, path):
        with open(path, "w") as outfile:
            outfile.write(self.dataDictionary["soup"].prettify())
Run Code Online (Sandbox Code Playgroud)

TestAbstractScraper.py

import unittest
from http.client import HTTPResponse
from bs4 import BeautifulSoup
from CrackedScrapeProject.scrape.AbstractScraper import AbstractScraper
from io import StringIO


class TestAbstractScraperMethods(unittest.TestCase): …
Run Code Online (Sandbox Code Playgroud)

python testing unit-testing web-scraping

8
推荐指数
1
解决办法
1247
查看次数

R 指数产生 NaN

当我对浮点数据取幂时遇到了一个问题。看起来它应该是一个简单的修复。这是我的示例代码:

temp <- c(-0.005220092)
temp^1.1

[1] NaN

-0.005220092^1.1

[1] -0.003086356
Run Code Online (Sandbox Code Playgroud)

我在这方面犯了一些明显的错误吗?似乎这可能是我对指数的疏忽。

谢谢,

亚历克斯

math r exponent

1
推荐指数
1
解决办法
267
查看次数

标签 统计

exponent ×1

math ×1

python ×1

r ×1

testing ×1

unit-testing ×1

web-scraping ×1