【问题标题】:How can I fix my unittest 405 != 200 error when testing my flask application?测试我的烧瓶应用程序时如何修复我的 unittest 405 != 200 错误?
【发布时间】: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


【解决方案1】:

405 错误的解决方法是路由需要 POST 或 GET。根据您的烧瓶应用程序,确保您使用正确的 self.app.post('/',follow_redirects=True)self.app.get('/',follow_redirects=True)

【讨论】:

    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多