zoukankan      html  css  js  c++  java
  • 单断言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

    嗯,而且是只作一件正确的事

    浮沙之上勿筑高台
  • 相关阅读:
    Teched最后两天下载,同时新加熊老的teched录像,请尽快下载。
    如何学习,牛人是否真牛?
    为什么我的脚本大多是支持IE环境
    SPS中提供的Blog
    teched2004最后一天下载,新增js的menu1.0下载
    asp+xml+js所作的文件管理器,完全仿xp风格,精彩下载不要错过。
    将业务系统数据库的数据显示在页面上并且作WebPart的跨页面连接
    Activity中UI框架基本概念
    Android学习笔记——Activity的启动和创建
    Mms模块ConversationList流程分析(2)
  • 原文地址:https://www.cnblogs.com/stst/p/4904828.html
Copyright © 2011-2022 走看看