我正在为“注册”功能运行单元测试。有没有办法检查表单中的所有字段在提交时都满足其验证者的要求?
def test_register(self):
form = RegistrationForm()
form.username.data = "test"
form.email.data = "test@email.com"
我的注册表单有一个“ SubmitField”,我想知道是否有一种方法(在单元测试中)模拟单击的“ SubmitField”,然后继续测试是否使用来满足用户名和电子邮件字段的验证者“ AssertTrue()”?
答案 0 :(得分:1)
您可以调用form.validate()
来运行字段验证,而无需模拟请求。
通常您会使用form.validate_on_submit()
,这只是form.is_submitted()
和form.validate()
的快捷方式。
答案 1 :(得分:0)
这是一种方法,您必须传递不正确的数据并检查是否引发了相关错误。
def test_missing_field_user_registration_error(self):
self.app.get('/register', follow_redirects=True)
response = self.register('patkennedy79@gmail.com', 'FlaskIsAwesome', '')
self.assertIn(b'This field is required.', response.data)
https://gitlab.com/patkennedy79/flask_recipe_app/blob/master/web/project/tests/test_users.py