Python:单元测试抛出<Response stream [200 OK]>而不是实际输出

gur*_*uri 6 python unit-testing flask

from flask import jsonify

@app.route('/urlinfo/1/<path:URL>', methods=['GET']) 
def search(URL): 
  if something:
     a=dict(message="everything is good"
     resp=jsonify(a)
     return resp
  else:
     a=dict(error="problem")
     return jsonify(a)
Run Code Online (Sandbox Code Playgroud)

我正在使用它

 curl  http://127.0.0.1:5000/urlinfo/1/'https://www.youtube.com/'
Run Code Online (Sandbox Code Playgroud)

它以json格式返回所需的输出.

我为它写了一个Unittest

 import unittest

 def test_search_non_malicious_url(self):
    #pass safe URL and test web service does not block it
    new_URL= "183.434.44.44:90"
    expected= {
                  "message": "Everything is good"
             }    
    self.assertEqual("a",search(new_URL))
Run Code Online (Sandbox Code Playgroud)

单元测试失败,因为而不是返回字符串("消息":"一切都很好"),search(new_URL)返回响应流[200 OK]

如何将输出作为字典返回{"message": "Everything is good"}

gur*_*uri 10

弄清楚了.我必须添加.data以获取值:

self.assertEqual("a",search(new_URL).data)
Run Code Online (Sandbox Code Playgroud)