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')
        .
        .
        .