我对Python和烧瓶还不熟悉,但我渐渐地开始掌握它了。到目前为止,我已经开始构建一个应用程序,现在我在想我应该开始一些单元测试。不过,我真的不知道该怎么办。我读过各种各样的文档、文章和例子,但我似乎无法将其转换成我自己的代码。我希望如果有人能告诉我如何为我的一个函数编写一个测试,那么事情就会安排妥当。在这个阶段,忽视它并继续构建我的应用程序是非常诱人的。在
@app.route('/user/<nickname>/create_bike', methods = ['GET', 'POST'] )
@login_required
def create_bike(nickname):
user = User.query.filter_by(nickname = nickname).first()
bikes = user.bikes.all()
bikecount = user.bikes.count()
form = CreateBike()
if form.validate_on_submit():
if bikecount < user.bike_allowance:
# let user create a bike
newbike = Bikes(bikename = form.bikename.data,
user_id = g.user.id, shared = SHARED )
db.session.add(newbike)
db.session.commit()
flash('Your new bike has been created')
return redirect(url_for('create_bike', nickname = nickname))
else:
flash("You have too many bikes")
return render_template('create_bike.html',
user = user,
form = form
)
更新-这是我的工作测试
^{pr2}$
你在正确的轨道上。在
在测试web应用程序时,检查html页面是否包含一些应该存在的数据片段。你只需要重复你创建的所有其他页面。您还可以添加测试,以查看创建用户是否遵循您设置的所有验证规则,或者用户名字段是否唯一等等
您的测试可能失败,因为该视图需要一个已登录的用户,并且由于您没有传递任何会话数据,所以您将被重定向到登录页(在您的视图中,
data
参数是表单数据,可在视图中的request.form
中找到)。在你的断言之前,你可以看到在这一过程中,你的反应是什么:有一些关于测试here中会话的文档,如果您像看上去那样使用Flask登录,this answer将向您展示如何设置会话,以便让您获得登录的用户
相关问题 更多 >
编程相关推荐