python - 测试我的烧瓶应用程序时如何修复我的 unittest 405 != 200 错误?
问题描述
第一次使用单元测试并尝试运行和测试我的烧瓶应用程序。我的 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
在拆分终端中运行然后运行单元测试,但仍然没有工作。对此仍然很陌生,所以不确定我是否只是缺少一些代码。我在代码中运行并通过了其他单元测试,但它们只是检查功能而不是实际的烧瓶应用程序。
解决方案
405 错误的修复方法是路由需要 POST 或 GET。根据您的烧瓶应用程序,确保您使用正确self.app.post('/',follow_redirects=True)
或self.app.get('/',follow_redirects=True)
推荐阅读
- java - 如何在不更改 Java 中的 hashmap 本身的情况下获取和更改 hashmap 的值?
- javascript - vuejs 的 toast-ui 编辑器中的 v-model
- postgresql - 如何在postgres中获得除负数之外的平均值
- ios - Swift 模块稳定性:使用 Swift XY 编译的模块不能被 Swift XZ 编译器导入
- google-data-studio - 在 Data Studio 中将秒转换为 MM:HH:SS
- laravel - laravel 中间件在刀片中没有收到错误代码或会话消息
- django - Django UpdateCacheMiddleware 开头和 FetchFromCacheMiddleware 结尾
- variables - Nginx - 变量使用(set vs map)上下文和使用
- git - 如何为 gitk 添加更好的复制检测?
- c# - 数据注释 C# 两个 StringLegth 的可能性