【有书共读】《Python测试驱动给开发》读书笔记03

使用单元测试测试简单的首页

第一个Django应用,第一个单元测试
        首先要创建一个Django的app 
        >>> python manage.py startapp lists
 单元测试与功能测试的区别
        单元测试应成为您编写代码的核心环节,当您所做的项目时限很紧并且您希望控制开发进度时尤其如此。由于单元测试是如此重要,所以您应该先编写测试,再编写代码。
        单元测试向开发人员表明代码正确执行操作;而功能测试向开发人员表明代码执行正确的操作。
        单元测试是从程序员的角度编写的。它确保类的某个特定方法成功执行一系列特定的任务。每个测试都确保只要给定输入,方法将输出预期的结果。
        功能测试是从用户的角度编写的。这种测试确保系统执行用户期望它执行的工作
        就像单元测试一样,如果没有测试框架,编写一套可维护的自动化功能测试实际上是不可能的。JUnit 非常适合编写单元测试;但是,当试图编写功能测试时,它就显得力不从心了。就功能测试而言,没有与 JUnit 相当的框架。也有几种用于功能测试的产品,但我从来没见过它们应用于生产环境。如果找不到满足您的需要的框架,您就必须创建一个。
        3.Django中的单元测试
        
简单测试例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from django.test import TestCase
from myapp.models import Animal
 
 
class AnimalTestCase(TestCase):
    def setUp(self):
        Animal.objects.create(name="lion", sound="roar")
        Animal.objects.create(name="cat", sound="meow")
 
    def test_animals_can_speak(self):
        """Animals that can speak are correctly identified"""
        lion = Animal.objects.get(name="lion")
        cat = Animal.objects.get(name="cat")
        self.assertEqual(lion.speak(), 'The lion says "roar"')
        self.assertEqual(cat.speak(), 'The cat says "meow"')
这个例子是测试myapp.models 中的 Animal 类相关的方法功能。
 用代码访问网址的方法:
1
2
3
4
5
6
7
8
>>> from django.test import Client
>>> c = Client()
>>> response = c.post('/login/', {'username''john''password''smith'})
>>> response.status_code
200
>>> response = c.get('/customer/details/')
>>> response.content
'<!DOCTYPE html...'
我们可以用 django.test.Client 的实例来实现 get 或 post 内容,检查一个网址返回的网页源代码
总结命令和概念:
启动Django的开发服务器
>>> python manage.py runserver
运行功能测试
>>> python functional_tests.py
运行单元测试
>>> python manage.py test


#Python##测试##笔记##读书笔记#
全部评论

相关推荐

05-12 17:28
已编辑
门头沟学院 硬件开发
点赞 评论 收藏
分享
你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务