【发布时间】:2016-10-29 13:48:21
【问题描述】:
我有下面代码的sn-p。我无法改变,但我需要测试。它的作用是连接到服务器并获取我需要的数据。特别是我需要在第 12 行为变量 data1 插入错误的输入来测试它。 但目前我还达不到。
1. url = "http://localhost:8000"
2. data = urllib.request.urlopen(url)
3.
4. def get_data():
5. yield data.read()
6.
7. #generator
8. def get_objects(in_stream):
9. json_object = ""
10. buffer = b''
11. for data1 in in_stream:
12. data = buffer + data1
13. data = data.decode("utf-8")
...
22.for json_dict in get_objects(get_data()):
23. print(repr(json_dict))
get_object(in_stream) 必须是某种可迭代的,对吧?所以,我想在那里传递一个字符串:
def test_falsely(self):
self.assertEqual(solution.get_objects("bla bla"), "blabla")
但我收到一个错误:
======================================================================
FAIL: test_falsely (__main__.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 21, in test_falsely
self.assertEqual(solution.get_objects("bla bla"), "blabla")
AssertionError: <generator object get_objects at 0x103433308> != 'blabla'
我做错了什么?有人知道如何测试吗?谢谢。
【问题讨论】:
-
好吧,
get_objects不会返回或产生任何东西,所以这不是minimal reproducible example。话虽如此,你需要加入你从get_objects返回的生成器。 -
它会生成代码。我用省略号表示我删掉了一些代码。我的错。
标签: python python-3.x testing generator python-unittest