这个是套路,

有了这些测试用例,

开发就会更有保障,

且每次重写,都好麻烦,

不好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())

最新文章

  1. FFmpeg和X264的交叉编译环境
  2. 【RabbitMQ】HelloWorld
  3. AFNnetworking详解
  4. JavaEE填空与判断
  5. .Net 揭密--JIT怎样运行你的代码
  6. python3、selenium、autoit3,通过flash控件上传文件
  7. [Spring boot] web应用返回jsp页面
  8. ignite中的消息使用实例
  9. charles支持https抓包配置
  10. 【Spring框架】&lt;mvc:default-servlet-handler/&gt;的作用
  11. [转]How To Send Transactional Email In A NodeJS App Using The Mailgun API
  12. C++ 中容器
  13. SQL 行转列 列转行 PIVOT UNPIVOT
  14. [日常] Go语言圣经--JSON习题2
  15. html简单介绍(二)
  16. Linux(一) - Unix&Linux 历史
  17. Examples of GoF Design Patterns--摘录
  18. 有关WINDOWS XP登录密码的几种方法
  19. Clion + opencv环境搭建(体验最好的C++ IDE)
  20. 表单校验常用原生js库

热门文章

  1. IDEA 调试技巧
  2. 04 Spring的@Autowired注解、@Resource注解、@Service注解
  3. js中全局变量修改后的值不生效【jsp页面中各个js中内容的加载顺序】
  4. C/C++ 类成员函数指针 类成员数据指针
  5. adb logcat介绍
  6. git 创建空提交
  7. RPC与RMI的区别
  8. WinFrom弹出输入框
  9. sublime Text不能安装插件的解决办法
  10. 官方资料&amp;一些好的博客与技术点