Unit testing 当请求通过简单的API调用工作时,为什么不在单元测试上发布请求?
这是我的代码:Unit testing 当请求通过简单的API调用工作时,为什么不在单元测试上发布请求?,unit-testing,flask,Unit Testing,Flask,这是我的代码: #!flask/bin/python from myProject import app import unittest class TestCase(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_login(self): response = app.test_client().post('/l
#!flask/bin/python
from myProject import app
import unittest
class TestCase(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_login(self):
response = app.test_client().post('/login', data={})
self.assertEqual(response.status_code, 200)
if __name__ == '__main__':
unittest.main()
运行此脚本时,出现以下错误:
======================================================================
FAIL: test_login (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_login.py", line 16, in test_login
self.assertEqual(response.status_code, 200)
AssertionError: 404 != 200
----------------------------------------------------------------------
Ran 1 test in 0.096s
FAILED (failures=1)
EDIT1: 在
app.py
文件中,我有:
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
class myProjectApp(object):
def setup(self):
api.add_resource(Login, '/login')
我有404。但是对/login
的简单API调用可以按预期工作。我的应用程序在端口5000上,如果它与其他端口相关。这里有什么我遗漏的吗
EDIT2: 似乎用单元测试测试restful api是不同的,因为使用内置的
route
decorator工作得很好,而单元测试工作得很好。如何测试restful API?当我使用restful web服务的外部库API(app)
时,无法访问路由。我在unittest方法内部调用了setup函数来初始化Api
路由。现在它如预期的那样工作:
myApp = myProjectApp()
self.app = myApp.setup()
设置方法包含:
def setup(self):
api.add_resource(Login, '/login')
.
.
.