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多断言的更多相关文章

  1. Jmeter断言实例—响应断言

    断言有很多种,最最最常用的一种就是响应断言,目前我用的最多是这一种,下面列举一个运用响应断言的实例 对相应的请求添加断言 **Main sample and sub-samples:断言应用于主采样器 ...

  2. Jmeter 02 Jmeter断言之响应断言

    看完上一篇博客,相信大家应该可以使用Jmeter发送HTTP请求了.那么我们既然是要测试,就肯定需要判断结果了.Jmeter对于请求的响应数据提供了几种断言机制,这里大概说一下比较常用的几种断言. 响 ...

  3. Jmeter之断言(响应断言,断言持续时间)

    断言是测试环节中,十分重要的一节. 响应结果是否正确,可以通过断言判断,无需人工确认. 1.为请求添加断言 常使用:响应断言>Bean Shell断言>断言持续时间 2.响应断言 ●常用来 ...

  4. Jmeter -- 添加断言,及断言结果

    步骤: 1. 添加响应断言(添加-断言-响应断言) Add -->  Assertions --> Response Assertion 2. 配置断言 判断响应内容中,是否包含关键字“禅 ...

  5. C++断言与静态断言

    断言是很早之前就有的东西了,只需要引入cassert头文件即可使用.往往assert被用于检查不可能发生的行为,来确保开发者在调试阶段尽早发现“不可能”事件真的发生了,如果真的发生了,那么就表示代码的 ...

  6. K:java 断言 assert 初步使用:断言开启、断言使用

    @转自天地悠悠的个人博客 主要总结一下在eclipse中如何使用断言. (一)首先明确: java断言Assert是jdk1.4引入的. jvm 断言默认是关闭的. 断言是可以局部开启的,如:父类禁止 ...

  7. java断言assert初步使用:断言开启、断言使用

    1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. ...

  8. AssertJ断言系列-----------<数据库断言三>

    其实,是有很多种数据断言的使用.那么,我们在接口的测试中,到底应不应该加上数据库断言呢?我的观点是,视情况而定:某一些特殊的场景或者特殊的业务,那么我们就一定要加上数据库断言.不是我们测试人员,不相信 ...

  9. AssertJ断言系列-----------<数据库断言二>

    那么,在实际的接口测试中,我们除了要断言响应的数据正确之外,可能有的还需要断言数据层是否数据真的有入库. assertj db是可以直接对数据库进行断言和操作的. 一.创建一个students表 CR ...

随机推荐

  1. 神奇的sed替换

    1. 替换含有某关键字的行 $ sed 's/.*ami-07bc4ae4d4d662f53.*/ami = "ami-07bc4ae4d4d662f53898989898989" ...

  2. UVA 1638 Pole Arrangement

    https://vjudge.net/problem/UVA-1638 题意: n根长度分别为1,2,3,4……n的木棍 将这些木棍竖着排成一列 问从左边看能看到L根,从右边看能看到R根的方案数 将木 ...

  3. 【设计模式】 模式PK:装饰模式VS适配器模式

    1.概述 装饰模式和适配器模式在通用类图上没有太多的相似点,差别比较大,但是它们的功能有相似的地方:都是包装作用,都是通过委托方式实现其功能.不同点是:装饰模式包装的是自己的兄弟类,隶属于同一个家族( ...

  4. [Luogu 3178] HAOI2013 树上操作

    [Luogu 3178] HAOI2013 树上操作 一道比模板还简单的难以置信的裸HLD省选题. 大约是需要long long. #include <cstdio> #include & ...

  5. Item 11 谨慎地覆盖Clone

    1.进行浅拷贝时,只是复制原始数据类型的值,则可以通过覆盖Clone方法来达到.另外,在进行浅拷贝的时候,还要注意,成员对象中不应该要有引用类型,如果有引用类型,那么,进行了浅拷贝之后,两个对象将会共 ...

  6. 【BZOJ1043】下落的圆盘 [计算几何]

    下落的圆盘 Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description 有n个圆盘从天而降,后面落下的可 ...

  7. 【NOIP】提高组2014 解方程

    [题意]已知n次方程(n<=100)及其所有系数(|ai|<=10^10000),求[1,m]中整数解的个数(m<=10^6). [算法]数论 [题解]如果f(x)=0,则有f(x) ...

  8. 【vijos】P1659 河蟹王国

    [算法]线段树 [题解]区间加上同一个数+区间查询最大值.注意和谐值可以是负数,初始化ans为负无穷大. #include<cstdio> #include<algorithm> ...

  9. 【洛谷 P3628】 [APIO2010]特别行动队 (斜率优化)

    题目链接 斜率优化总结待补,请催更.不催更不补 \[f[i]=f[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c\] \[=f[j]+a*sum[i]^2+a*s ...

  10. html+js+node实现五子棋线上对战,五子棋最简易算法

    首先附上我的github地址,https://github.com/jiangzhenfei/five,线上实例:http://47.93.103.19:5900/client/ 线上实例,你可以随意 ...