Python:单元测试抛出<response streamed =“”[200 =“”ok] =“”>而不是实际输出

时间:2016-11-19 02:14:17

标签: 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)

我正在使用

卷曲它
 curl  http://127.0.0.1:5000/urlinfo/1/'https://www.youtube.com/'

并以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))

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

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

1 个答案:

答案 0 :(得分:10)

想出来。我必须添加.data才能获得值:

self.assertEqual("a",search(new_URL).data)