我想在我的烧瓶应用程序中添加单元测试,以测试有效和无效登录+注册时的表单行为.目前,我在一个页面和路由上托管了注册表单和登录表单,并使用隐藏的输入字段来标识提交的两个表单中的哪一个/确定下一个操作.
我的问题是 - 如何编写针对页面上特定表单的单元测试?到目前为止,我看到的所有示例都将数据发布到特定路径,这正是我正在做的事情.但这是失败的,因为我需要一种额外的方式来说"我们正在提交x形式".
那么有没有办法在帖子请求中添加"我们正在提交x表单"?
**编辑添加,以下是我试图在后期数据字典中传递隐藏表单数据的不同方法,但没有成功.
data = dict(username="test@gmail.com", password="test", login_form)
data = dict(username="test@gmail.com", password="test", "login_form")
data = dict(username="test@gmail.com", password="test", login_form=True)
Run Code Online (Sandbox Code Playgroud)
登录单元测试:
from app import app
import unittest
class FlaskTestCase(unittest.TestCase):
#ensure that login works with correct credentials
def test_correct_login(self):
tester = app.test_client(self)
response = tester.post(
'/login',
data = dict(username="test@gmail.com", password="test"),
follow_redirects=True
)
self.assertIn(b'you are logged in', response.data)
Run Code Online (Sandbox Code Playgroud)
views.py中的登录路由:
@app.route('/login', methods=['POST', 'GET'])
def login():
login_form = LoginForm()
signup_form = SignupForm()
error_login = ''
error_signup = ''
#login form
if 'login_form' in …Run Code Online (Sandbox Code Playgroud)