单断言VS多断言
STST
想和大家讨论一下,一个测试用例里只做一个断言
还是一个用例里做多个相关的断言
比如有一个查询函数Query(id) 返回[姓名,性别,年龄]
那么是在一个测试用例里对这三个属性进行断言好?
还是在三个测试用例里,对每个属性进行断言好?
HZ
三个检查一个用例
你是希望有10个问题每次告诉你一个人折腾10次还是一次告诉你10个折腾1次
STST
哦,但是我发现分开写,表达力更强
你说的"折腾"当然有道理,但是牺牲了表达力

STST
现在的讨论分为两派了,如果能各抒己见最好
我比较支持分开写的这一派,但是也无法反驳前面一派
CRS
你的这3个属性是由一个行为获取到的..,为嘛要写成3个...
STST我是感觉表达力会强一些
CRS
那为啥不可以把这3个验证抽成一个方法..如果有必要抽的话
STST
如果Query复杂一点,姓名,性别,年龄各自来自复杂的算法,是不是分开就更容易表达跟踪了
WL
怎么知道这三个属性无相关性,三个用例单独验证都正确不等于一次取出时全部正确吧
STST
嗯,是的,很有见解
对这个问题可以这样解释
我现在对这个说法很认同
以概念本身为单元,一个概念本身有几个属性,应该放一起断言,但是不应该同时断言几个概念
WL
同意
STST
也就是说,不能再一个测试里,断言两个概念
比如执行
Insert(...)
断言Insert的结果
Query()
断言Query的结果
因为Insert的结果和Query的结果是两个无关的概念,不应该放一个测试里断言
我是这么理解的了
WL
塞兄很擅长抽象总结,我觉得,insert和query是两个独立test,如果合起来那是另一个新的test,一般是带业务关联的,否则没必要放一起,放一起后测试方向也不一样
STST
过奖过奖,喜欢瞎掰而已
嗯,这个问题再讨论下去,又成了OOX里的原则问题了
单一职责:一个模块只做一件事
用在这里感觉也很合适:一个测试只断言一件事,为什么把Insert和Query放一个测试用例不好,就是因为一个测试断言了两件事
LF
做正确的事,而不是正确的做事
STST
嗯,而且是只作一件正确的事
单断言VS多断言的更多相关文章
- Jmeter断言实例—响应断言
断言有很多种,最最最常用的一种就是响应断言,目前我用的最多是这一种,下面列举一个运用响应断言的实例 对相应的请求添加断言 **Main sample and sub-samples:断言应用于主采样器 ...
- Jmeter 02 Jmeter断言之响应断言
看完上一篇博客,相信大家应该可以使用Jmeter发送HTTP请求了.那么我们既然是要测试,就肯定需要判断结果了.Jmeter对于请求的响应数据提供了几种断言机制,这里大概说一下比较常用的几种断言. 响 ...
- Jmeter之断言(响应断言,断言持续时间)
断言是测试环节中,十分重要的一节. 响应结果是否正确,可以通过断言判断,无需人工确认. 1.为请求添加断言 常使用:响应断言>Bean Shell断言>断言持续时间 2.响应断言 ●常用来 ...
- Jmeter -- 添加断言,及断言结果
步骤: 1. 添加响应断言(添加-断言-响应断言) Add --> Assertions --> Response Assertion 2. 配置断言 判断响应内容中,是否包含关键字“禅 ...
- C++断言与静态断言
断言是很早之前就有的东西了,只需要引入cassert头文件即可使用.往往assert被用于检查不可能发生的行为,来确保开发者在调试阶段尽早发现“不可能”事件真的发生了,如果真的发生了,那么就表示代码的 ...
- K:java 断言 assert 初步使用:断言开启、断言使用
@转自天地悠悠的个人博客 主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言是可以局部开启的,如:父类禁止 ...
- java断言assert初步使用:断言开启、断言使用
1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. ...
- AssertJ断言系列-----------<数据库断言三>
其实,是有很多种数据断言的使用.那么,我们在接口的测试中,到底应不应该加上数据库断言呢?我的观点是,视情况而定:某一些特殊的场景或者特殊的业务,那么我们就一定要加上数据库断言.不是我们测试人员,不相信 ...
- AssertJ断言系列-----------<数据库断言二>
那么,在实际的接口测试中,我们除了要断言响应的数据正确之外,可能有的还需要断言数据层是否数据真的有入库. assertj db是可以直接对数据库进行断言和操作的. 一.创建一个students表 CR ...
随机推荐
- 获取文件名称 basename 用法
<?phpheader('Content-type:text/html;charset=utf8'); $str = '2390230.png';$str_arr = explode('.',$ ...
- redis 设置外网可访问
前提是你已经把redis的端口放到了防火墙计划中, /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT /etc/rc.d/init.d/ipt ...
- 数据结构&字符串:字典树
前缀树里面可以存一堆字符串,也可以说是一堆单词,存完之后我们可以轻松判断一个指定的字符串是否出现过 下面我来详细解释一下实现细节 *+; //单词个数*每一个单词的字符数 ; struct Trie ...
- 2015/9/3 Python密码输入屏蔽字符
在使用Python的过程中,想输入账号和密码,但是密码会随着输入显示在屏幕上,为了解决这个问题需要用到msvcrt模块 这里是使用代码 import msvcrt, sys def pwd_input ...
- C11简洁之道:初始化改进
1. C++98/03初始化 我们先来总结一下C++98/03的各种不同的初始化情况: //普通数组 ] = {, , }; //POD(plain old data) struct A { int ...
- CentOS查看系统版本号
命令:cat /etc/redhat-release [elsearch@localhost data]$ cat /etc/redhat-release Red Hat Enterprise Lin ...
- 社会网络分析——Social Network Analysis
什么是社会网络分析,英文social network analysis.现在这个分析越来越时髦,也越来越显现其在社会科学的研究价值.我在2000年的时候受祝建华老师的邀请到香港城市大学作研究,接触到 ...
- POJ 3276 Face The Right Way (尺取法)
题目链接 Description Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are f ...
- HDU 2577 How to Type (字符串处理)
题目链接 Problem Description Pirates have finished developing the typing software. He called Cathy to te ...
- eCharts_数据过多底部滚动条实现数据展示
效果图: 实现原理: 1.添加dataZoom属性 效果实现代码: <!DOCTYPE html> <html> <head> <meta charset=& ...