2 使用unitest 模块扩展功能测试
准备做一个 待办事项清单网站,来演示 Web 开发过程中的所有主要步骤。以及如何在各个步骤中运用TDD理念。
”功能测试“: 从用户的角度查看应用是如何运作的。 从某种程度上可以作为应用的说明书。
作用是 跟踪"用户故事,模拟用户使用某个功能的过程,以及应用应该如何响应用户的操作。
编写用户故事,可以先写注释,勾勒出用户故事。把测试代码和代码注释结合起来使用。非程序员也能看懂。
理念 ” 最简单可用的应用" :只要能让用户输入一些待办事项,并且用户下次访问应用时,这些事项还在即可。
先在功能测试文件中,编写用户故事。把测试提炼成一个连贯的故事,确保我们始终从用户的角度测试。
1. 功能测试中的AssertionError,最好使用Assert的第二个关键字,指出失败的具体简单消息。 unittest模块中内置的assert函数也已经提供了此功能
2. Firefox窗口在测试中打开,但在测试结束后,没有关闭。引用标准库中的 unittest模块。它提供了现成的解决方法
unittest:
测试组织成类的形式,继承自:unittest.TestCase
名字以“test_"开头的都是测试方法,由测试运行程序运行
setUp 和 tearDown 是特殊的方法。
unittest 提供了很多这种用于编写测试断言的辅助函数: self.assertIn, self.assertEqual, self.assertTrue,self.assertFalse. 可以参考unittest的测试文档
不管怎样 self.fail都会失败。生成指定的错误
if __name__=='__main__' python 使用这个语句检测自己是否在命令行中运行。调用 unittest.main()启动unittest的测试运行程序。它会在文件中自动查找测试类和方法。
隐式等待:self.browser.implicitly_wait(3)。 告诉selenimu需要等待几秒钟。简单的应用中可以用。但不要依赖它。
git 提交
TDD 概念:
用户故事
预期失败
2 使用unitest 模块扩展功能测试的更多相关文章
- 第二章 使用unittest模块扩展功能测试
2.1使用功能测试驱动开放一个最简单的应用 # functional_tests.py # -*- coding: utf-8 -*- from selenium import webdriver b ...
- nginx/php的redis模块扩展
redis模块介绍 redis2-nginx-module 可以实现 Nginx 以非阻塞方式直接防问远方的 Redis 服务,可以启用强大的 Redis 连接池功能,进而实现更多的连接与更快速的访问 ...
- php的imagick模块扩展
imagick模块介绍 ImageMagick是一个用于查看.编辑位图文件以及进行图像格式转换的开放源代码软件套装.它可以读取.编辑超过100种图象格式,可用来替换GD库. 安装 在加载模 ...
- php的Memcached模块扩展
Memcached模块介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态. ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十一:PS/2模块⑤ — 扩展鼠标
实验十一:PS/2模块⑤ — 扩展鼠标 当普通鼠标即三键鼠标再也无法满足需求的时候,扩展鼠标即滚轮鼠标就诞生了,然而实验十一的实验目的就是实现滚轮鼠标的驱动.不过,进入整体之前,先让我们来了解一下鼠标 ...
- AppCan JSSDK模块扩展
1. 从源码开始: 我们先看源码的8188行到9525行: window.appcan && appcan.define('window',function($,export ...
- Python学习笔记(迭代、模块扩展、GUI 、编码处理等)
PythonIDLE中的编码处理 http://www.tuicool.com/articles/NbyEBr 原文标题:Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来 ...
- lnmp下用phpize动态安装PHP模块/扩展(不需要重装PHP)
安装前 安装前建议先执行 /usr/local/php/bin/php -m (此命令显示目前已经安装好的PHP模块)看一下,要安装的模块是否已安装.然后下载当前PHP版本的源码并解压. 本文以ima ...
- PHP不重新编译,单独添加模块扩展的方法
php自身提供了很多扩展,比如curl,gmp, mbstring等.我们在编译安装php时未必安装了所有扩展.那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢? 我们以curl扩展模 ...
随机推荐
- wireguard使用方法
1.翻墙访问网页:https://cryptostorm.is/wireguard.cgi 并下载客户端 2. 选者第二个并打开 3.复制publickey 4.黏贴在第二行并addkey: 5.将获 ...
- Django查找数据库objects.filter() 排序order_by Q()与或非 F()属性之间比较 聚合函数的用法
条件选取QuerySet的时候,filter表示=参数可以写查询条件,exclude表示!=,querySet.distinct() 去重复(除了get返回值都是QuerySet,可以继续调用所有函数 ...
- asp.net core-11.WebHost的配置
1.添加空的web网站 ,在目录下添加settings.json文件,在控制台上输出json的信息 public class Program { public static void Main(str ...
- 通过pip命令导出和导入Python环境安装包
我们在开发完代码后,一般需要将依赖包导出,然后在移植到其他系统使去安装,保证环境正常 导出Python环境安装包[root@bogon ~]# pip freeze > packages.t ...
- hdu 1325
.,. 还是待整理 #include <stdio.h> const; typedef struct { int num,root,conn;//数据.根.入度 }Node; Node n ...
- access 数据库创建表SQL语法
create table R_CAIFA_B13 ( ID AUTOINCREMENT PRIMARY KEY, XB varchar(255), C1 varchar(50), C2 varchar ...
- 调用顺丰API实现电商专递下单和获取面单功能
参考文章:https://www.cnblogs.com/zhangxiaoyong/p/8317229.html 顺丰需求文档: 链接:https://pan.baidu.com/s/16EEaph ...
- qt连接oracle数据库
由与qt开源版本没有提供oracle数据库驱动,需要自己根据源代码来手动编译oracle驱动. 经过近三天的折腾,终于成功编译oracle驱动,连接到数据库 ps:期间经过各种失败疼苦迷茫.现在终于完 ...
- ElasticSearch创建动态索引
ElasticSearch创建动态索引 需求:某实例需要按照月份来维护,所以之前的“写死”索引的方式当然不行了.通过百度和看SpringDataElasticSearch官方文档,最后解决了这个问题. ...
- 基于【 Docker】四 || Docker常用镜像安装
一.nginx安装 1.拉取镜像:docker pull nginx 2.启动容器:docker run -d -p 80:80 nginx 3.查看nginx:ps aux | grep 'ngin ...