python - 获取 AttributeError:“TestRoutes”对象没有属性“app”
问题描述
下面的代码是我为烧瓶应用程序编写的单元测试,但在运行测试时导致以下错误:
File "/Users/ausername/projects/term_trader/tt2/tests/testRoutes.py", line 47, in test_deposit_route
response = self.app.post(BASE_URL,
AttributeError: 'TestRoutes' object has no attribute 'app'
导入对我来说看起来不错,因为我在“测试”文件夹中运行了一些其他测试,没有问题。当我在 curl 中测试它们时,路由本身工作得很好,我只是想养成编写测试的习惯。只是似乎无法弄清楚问题是什么。这是烧瓶版本 1.0.3。任何建议表示赞赏。
代码:
from unittest import TestCase
from model.user import User
from model.position import Position
from model.trade import Trade
from flask_app.app import app
from schema import build_user, build_positions, build_trades
import json
import os
BASE_URL = 'http://localhost:5000/api/'
class TestRoutes(TestCase):
def setup(self):
self.app.config['TESTING'] = True
self.app.config['DEBUG'] = False
self.app = app.test_client()
build_user()
build_positions()
build_trades()
bob = User(**{
"user_name": "bobdean",
"password": "password",
"real_name": "Bob Dean",
"balance": 0.0
})
bob.hash_password("password")
bob.api_key = "11111111111111111111"
bob.save()
def tearDown(self):
pass
def test_deposit_route(self):
bob = User.from_pk(1)
self.assertEqual(mike.user_name, "bobdean")
deposit = {"amount":1500.0}
response = self.app.post(BASE_URL,
data=json.dumps(deposit),
content_type='application/json')
self.assertEqual(response.status_code, 201, "Status Code should be 201")
self.assertEqual(bob.balance, 1500.0, "Bob's balance should equal 1500")
解决方案
您需要根据文档将 setup 重命名为 setUp
推荐阅读
- yarnpkg - 使用 Yarn Plug'n'Play 复制库的资产
- rust - 替换 RwLockWriteGuard 的内容
- excel - VBA:.Text 和 .Formula 的用途(写作时)?
- php - 浏览另一个网页后,cookie 过期在 codeigniter 中显示 N/A
- python - 错误:(-215) scn == 3 || 函数 cv::cvtColor 中的 scn == 4
- python - Google Colaboratory 中的错误 - AttributeError:模块“PIL.Image”没有属性“register_decoder”
- flutter - 一些时间延迟的功能在颤动中分流
- c# - 为什么使用 System.Data.Entity 只需要引用实体框架?
- npm - npm prune 路径不好?执行安装脚本失败
- javascript - 从 n 个对象数组中合并 n 个对象