django中注册功能signup的测试例
2024-10-11 11:30:11
这个是套路,
有了这些测试用例,
开发就会更有保障,
且每次重写,都好麻烦,
不好cp来得快~~:)
from django.test import TestCase from django.urls import reverse, resolve from django.contrib.auth.models import User from accounts.views import signup from accounts.forms import SignUpForm # Create your tests here. class SignUpTests(TestCase): def setUp(self): url = reverse('signup') self.response = self.client.get(url) def test_signup_status_code(self): self.assertEqual(self.response.status_code, 200) def test_signup_url_resolves_signup_view(self): view = resolve('/signup/') self.assertEqual(view.func, signup) def test_csrf(self): self.assertContains(self.response, 'csrfmiddlewaretoken') def test_contains_form(self): form = self.response.context.get('form') self.assertIsInstance(form, SignUpForm) def test_form_inputs(self): self.assertContains(self.response, '<input', 5) self.assertContains(self.response, 'type="text"', 1) self.assertContains(self.response, 'type="email"', 1) self.assertContains(self.response, 'type="password"', 2) class SuccessfulSignUpTests(TestCase): def setUp(self): url = reverse('signup') data = { 'username': 'john', 'email': 'john@demo.com', ', ' } self.response = self.client.post(url, data) self.home_url = reverse('home') def test_redirection(self): self.assertRedirects(self.response, self.home_url) def test_user_creation(self): self.assertTrue(User.objects.exists()) def test_user_authentication(self): response = self.client.get(self.home_url) user = response.context.get('user') self.assertTrue(user.is_authenticated) class InvalidSignUpTests(TestCase): def setUp(self): url = reverse('signup') self.response = self.client.post(url, {}) def test_signup_status_code(self): self.assertEqual(self.response.status_code, 200) def test_form_errors(self): form = self.response.context.get('form') self.assertTrue(form.errors) def test_do_not_create_user(self): self.assertFalse(User.objects.exists())
最新文章
- FFmpeg和X264的交叉编译环境
- 【RabbitMQ】HelloWorld
- AFNnetworking详解
- JavaEE填空与判断
- .Net 揭密--JIT怎样运行你的代码
- python3、selenium、autoit3,通过flash控件上传文件
- [Spring boot] web应用返回jsp页面
- ignite中的消息使用实例
- charles支持https抓包配置
- 【Spring框架】<;mvc:default-servlet-handler/>;的作用
- [转]How To Send Transactional Email In A NodeJS App Using The Mailgun API
- C++ 中容器
- SQL 行转列 列转行 PIVOT UNPIVOT
- [日常] Go语言圣经--JSON习题2
- html简单介绍(二)
- Linux(一) - Unix&Linux 历史
- Examples of GoF Design Patterns--摘录
- 有关WINDOWS XP登录密码的几种方法
- Clion + opencv环境搭建(体验最好的C++ IDE)
- 表单校验常用原生js库