gpt4 book ai didi

python - 在Python中模拟对象的构造函数

转载 作者:行者123 更新时间:2023-12-01 04:01:11 27 4
gpt4 key购买 nike

我想测试一个从网页解析数据的函数,但我不希望我的测试依赖于 HTML 代码或互联网的修改,因此我保存了网页。我想测试的函数中的问题是:

url_query = "http://www.allocine.fr/film/fichefilm-%s/similaire/" %allocine_id
response = requests.get(url_query)
soup = BeautifulSoup(response.text, "html.parser")

所以我在测试中做了:

def test_Allocine_matrix_reloaded(self):
#Load result Matrix allocine API
test_file = open(MATRIX_RELOADED_TEST_FILE)
matrix_reloaded_data = json.load(test_file)
test_file.close()

#Load result Matrix sim allocine webpage
test_page = open(MATRIX_RELOADED_TEST_FILE)
matrix_reloaded_sim_page = test_page.read()
test_page.close()

#Mocking functions
allocine.get_allocine_info = mock.MagicMock(return_value=matrix_reloaded_data)
requests.get = mock.MagicMock(return_value=matrix_reloaded_sim_page)

但是我遇到了错误:

Traceback (most recent call last):
File "info_allocine_test.py", line 34, in test_Allocine_matrix_reloaded
friends_allocine_info = allocine.AllocineInfo(matrix_realoaded_allocine_id)
File "info_allocine_flat.py", line 116, in __init__
sim_allocine['sim'] = scrap_similar_movie_allocine(allocine_id)
File "info_allocine_flat.py", line 255, in scrap_similar_movie_allocine
soup = BeautifulSoup(response.text, "html.parser")
AttributeError: 'str' object has no attribute 'text'

如何获取 soup 变量中的 HTML 代码? (我正在使用unites和mock)

最佳答案

这里最好的做法是将这三行提取到一个单独的方法或函数中,该方法或函数返回下载的文本或 BeautifulSoup 对象。您的实际函数可以调用此函数来下载文本,但您的测试可以模拟整个函数。

关于python - 在Python中模拟对象的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36469715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com