一、断言方法

执行用例的过程中,最终用例是否执行通过,是通过判断测试得到的实例结果与预期结果是否相等决定的。unittest框架的TestCase类提供下面这些方法用于测试结果的判断。

-assertEqual(first,second,msg=None)
断言第一个参数和第二个参数是否相等,如果不相等则测试失败。msg为可选参数,用于定义测试失败时打印的信息。
#test.py
#coding:utf-8 from Demo1 import Count
import unittest #测试两个整数相加
class TestCount(unittest.TestCase): def setUp(self):
number=input("please input your number:")
self.number= int(number) def test_case(self):
self.assertEqual(self.number,10,msg='your input number is not 10!~') def tearDown(self):
pass if __name__=='__main__':
unittest.main()

注意:此例需使用python自带的IDLE运行,因为执行过程中需要用户输入

在setUp()方法中要求用户输入一个数,在test_case()中通过assertEqual()比较输入的数据是否等于10,如果不相等则输出msg中定义的提示信息。执行结果如下:

从执行结果看到,输入看一个12,显然不等于10,msg所定义的提示信息告诉我们“your input number is not 10”。

-assertNotEqual(first,second,msg=None)
assertNotEqual()与assertEqual()相反,他用于断言第一个参数与第二个参数是否不相等,如果相等则测试失败。 -assertTrue(express,msg=None)
-assertFalse(express,msg=None)
测试表达式是true(或False)

  

下面这个例子是判断一个数是否为质数,所谓的质数(素数)是指只能被1和他本身整除的数

#count.py
#coding:utf-8 #判断质数
def is_prime(n):
if n<=1:
return False for i in range(2, n):
if n % i == 0:
return False else:
return True

创建is_prime()函数用于实现对质数的判断。当得到一个数字n后,首先判断它是否小于或等于1,如果小于或等于1,则直接返回False;如果大于1,若能整除2到其自身之间的任意一个数,则不为质数,返回False,否则返回True;

#test.py
#coding:utf-8 from Demo1 import is_prime
import unittest class TestCount(unittest.TestCase): def setUp(self):
number=input("please input your number:")
self.number= int(number) def test_case(self):
self.assertTrue(is_prime(self.number),"the number is not prime") def tearDown(self):
pass if __name__=='__main__':
unittest.main()

在调用is_prime()函数时分别传不同的值来执行测试用例,assertTrue()断言得到的结果为True(或False)

-assertIn(first,second,msg=None)
-assertNotIn(first,second,msg=None)
断言第一个参数是否在第二个参数中,反过来讲,第二个参数是否包含第一个参数。  
#test.py
#coding:utf-8
import unittest class Test(unittest.TestCase): def setUp(self):
self.a=input("please input string a:")
self.b=input("please input string b:") def test_string(self):
self.assertIn(self.a,self.b,msg='a is not in b') def tearDown(self):
pass if __name__=="__main__":
unittest.main()

这个很好理解,定义字符串a为“hello”,b为“hello world”,通过assertIn判断b是否包含a,如果不包含则打印msg定义的信息。

-assertIs(first,second,msg=None)
-assertIsNot(first,second,msg=None)
断言第一个参数和第二个参数是否为同一对象。 -assertIsNone(expr,msg=None)
-assertIsNotNone(expr,msg=None)
断言表达式是否为None对象。 -assertIsInstance(obj,cls,msg=None)
-assertNotIsInstance(obj,cls,msg=None)
断言obj是否为cls的一个实例。
unittest中还提供了其他检查比较的方法,因为不常用,所以不再一一介绍。

  

Selenium 2自动化测试实战28(断言方法)的更多相关文章

  1. Selenium 2自动化测试实战3(函数、类和方法)

    一.函数.类和方法1.函数在python中通过def关键字来定义函数 创建一个add()函数,此函数接收两个参数a,b,通过print()打印a+b的结果.调用add()函数,并且上传两个参数3,5给 ...

  2. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  3. Selenium 2自动化测试实战

    Selenium 2自动化测试实战 百度网盘 链接:https://pan.baidu.com/s/1aiP3d8Y1QlcHD3fAlEj4sg 提取码:jp8e 复制这段内容后打开百度网盘手机Ap ...

  4. Selenium 2自动化测试实战26(unittest单元测试框架)

    一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...

  5. Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

    背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...

  6. Selenium 2自动化测试实战39(Page Object设计模式)

    Page Object设计模式 Page object是selenium自动化测试项目开发时间的最佳设计模式之一,主要体现在对界面交互细节的封装. 1.认识page object优点如下:1.减少代码 ...

  7. Selenium+Python自动化测试实战(2)元素定位

    1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事, ...

  8. Selenium 2自动化测试实战35(HTML测试报告)

    HTML测试报告 显然,一份漂亮的测试报告展示自动化测试成果只有一个简单的log文件是不够的.HTMLTestRunner是python标准库unittest单元测试框架的一个扩展,它生成易于使用的H ...

  9. Selenium 2自动化测试实战34(编写Web测试用例)

    编写Web测试用例 1.介绍了unittest单元测试框架,其主要是来运行Web自动化测试脚本.简单的规划一下测试目录:web_demo1/------test_case/------------te ...

随机推荐

  1. windows环境下备份与恢复,与文件拷贝

    mySQL数据库在windows环境下备份与恢复 解压版需进入数据库安装目录.安装版可以忽略本步骤: 1.先在运行中输入CMD,启动命令行2.进入Mysql的Bin目录:E:\Program File ...

  2. [AWS - EC2] 如何向 Amazon Linux 2 实例传输文件,下载文件。How to send/ download files from Amazon Linux 2 Instance

    1. 需要: 安装 WinSCP 2. 需要: PuTTY 生成的ppk格式密钥, 没有的话请移步此文章,完成1, 2, 3步即可. 3. 打开 WinSCP , 如果提示已经有PuTTY配置是否导入 ...

  3. UVA 1482 SG打表

    打出SG表来可以很容易的发现i为偶数时 SG[i]=i/2 i为奇数时 SG[i]=SG[i/2] #include<bits/stdc++.h> typedef long long ll ...

  4. linux 安装weblogic(转载)

    整个过程大同小异,不再笔记,就摘了网上的一篇. 原文地址:http://www.cnblogs.com/walk-the-Line/p/5409094.html 一.安装weblogic10.3.6 ...

  5. MySQL BinLog Server 搭建实战

    一.MySQL Binlog server 介绍 MySQL Binlog Server: 它使用 mysqlbinlog 命令以 daemon 进程的方式模拟一个 slave 的 IO 线程与主库连 ...

  6. 关于redis的主从、哨兵、集群(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/c295477887/article/de ...

  7. 【BD2】- Linux安装db2 v11.1

    一.背景 项目需要兼容多种数据库oracle.mysql.db2.KingDB等等...... 自己在阿里云买的服务器安装测试...... 二.记录安装过程 1.创建db2目录 [root@ysx y ...

  8. 通过JS完成电梯动画效果

    实习单位要求做一个在Vue项目中比较能适配的来反映货梯当前状况的页面效果 用JS写了一个 <!DOCTYPE html> <html> <head> <met ...

  9. 字符单链表识别数字,字母,其它字符,并分为三个循环链表的算法c++实现

    已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间. 实现源代码: ...

  10. NOI2013 二叉查找树

    题目链接:戳我 对于一个排序二叉树来讲,它的中序遍历对应的序列是可以确定的. 我们知道如果求一个访问频率最低的(也就是没有修改),直接就区间DP即可.\(dp[i][j]=min(dp[i][j],d ...