【发布时间】:2021-04-26 23:43:17
【问题描述】:
第一次使用单元测试并尝试运行和测试我的烧瓶应用程序。我的 Flask app.py 中有基本的东西:
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
port = 5000
@app.route('/',methods=['POST'])
def main():
data = request.get_json()
在我的 test.py 中有:
from app import app
class testing(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
app.config['WTF_CSRF_ENABLED'] = False
app.config['DEBUG'] = False
self.app = app.test_client()
self.assertEqual(app.debug, False)
def tearDown(self):
pass
def test_main_page(self):
response = self.app.get('/', follow_redirects=True)
self.assertEqual(response.status_code, 200)
不断收到断言错误 405 != 200
我跑了python -m unittest test.py
没跑。所以我尝试运行python -m flask run,然后在拆分终端中运行单元测试,但仍然没有工作。对此仍然很陌生,所以不确定我是否只是缺少一些代码。
我在代码中运行并通过了其他单元测试,但它们只是检查函数而不是实际的烧瓶应用程序。
【问题讨论】:
-
您只允许在该路由上发布 POST,但您正在发送 GET 请求。你想改为:
self.app.post('/',follow_redirects=True)? -
您的应用程序路由需要
POST,但您发送的是GET -
405 表示使用了错误的方法(GET 而不是 POST)
-
谢谢大家。不敢相信我没听懂。
标签: python unit-testing flask python-unittest