【发布时间】:2015-04-24 13:20:17
【问题描述】:
您好,想在终端的烧瓶应用程序中测试“删除路线”,我可以看到测试已经过去,它说“test_user_delete (test_app.LayoutTestCase) ... ok” 但是当我打开封面时,它仍然是红色的,这意味着没有覆盖它,请您向我解释一下为什么以及我做错了什么?
app.layout.view.py
test.py
e1 = Users(name='admine2', email='admine2@gmail.com', age=25)
e2 = Users(name='teste2', email='teste2@gmail.com', age=27)
db.session.add_all([e1, e2])
db.session.commit()
u = Users.query.get(1)
db.session.remove()
db.session.delete(u)
response = self.client.post('/delete/1',
follow_redirects=True)
self.assertTrue('admine2 is removed!', response.data)
view.py:
@layout.route('/delete/<int:id>')
def delete(id):
"""remove monkey"""
user = Users.query.get_or_404(id)
db.session.delete(user)
db.session.commit()
flash("{0} is removed!".format(user.name))
return redirect(url_for("layout.user", page=1, sortby='normal'))
【问题讨论】:
-
尝试将
self.assertTrue('delete done!', response.data)更改为self.assertEqual('delete done!', response.data):现在您的self.assertTrue()语句始终正确,您没有测试任何内容。我不是 Falsh 专家,但据我所知flash()消息没有回复,但您可以在其他地方找到。 -
thnx @Micheled'Amico 我收到了这个错误 AssertionError: 'delete done!' != '\n
404 未找到 \n未找到
\n在服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。\n' -
这意味着您没有调用删除页面(正如报道所建议的那样)。首先测试
response.code==200(我猜......)确保调用它和用户的测试数据库。 -
response = self.client.get(url_for('layout.delete%d'.format(e1.id) ')) self.assertEqual(response.status_code, 200) @Micheled'Amico I我也不是专家 :(( 应该是这样的?
标签: python flask coverage.py flask-testing