51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3045|回复: 8
打印 上一主题 下一主题

[求助] 对于单元测试的疑惑

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-9-27 11:02:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
测试的对象是 JS 小程序 es6 测试框架用的是mocha
在没拿到研发的代码之前我就有些许疑惑:和前端有互动的函数要怎么去测

在网上的mocha教程中 ,大多都是没有和前端或者服务器互动的函数和判断。
这样测试用例写起来当然简单直接。
可是现实当中不太有这种情况出现。
下面是一个增加或减少购物车中商品数量的函数
//增减购物车商品数量
  reduceAddCount:function(e){
    console.log(e)
    let index = e.currentTarget.dataset.index
    let cartData = JSON.parse(JSON.stringify(this.data.cartData))
    if (e.currentTarget.dataset.type === '0') {
      if (cartData[index].goods_num > 1){
        --cartData[index].goods_num
        let cart = {
          goods_num: cartData[index].goods_num,
          cart_id: cartData[index].id
        }
        wxRequest('/cart/changeNum', cart,'GET',false).then(res => {
          this.setData({ cartData: cartData })
          this.getTotalPrice()
        })
      }
    } else {
      if(cartData[index].goods_num < cartData[index].goods.store_count){
        ++cartData[index].goods_num
        let cart = {
          goods_num: cartData[index].goods_num,
          cart_id: cartData[index].id,
          type: e.currentTarget.dataset.type
        }
        wxRequest('/cart/changeNum', cart,'GET',false).then(res => {
          this.setData({ cartData: cartData })
          this.getTotalPrice()
        })
      }else{
        Toast({
          message: '库存不足',
          selector: '#zan-toast-test',
          type: 'fail'
        })
      }
    }
  },
可以看到 数量的加减判断是通过 用户点击的按钮和当前商品数量来判断是否可以加减的。之后再进行自减一或自加一。


那么我要如何模拟用户的点击或者其他操作呢。毕竟有些函数是需要操作才会触发。
还是我直接定义一个变量替换掉呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 1392 天

    连续签到: 3 天

    [LV.10]测试总司令

    3#
    发表于 2018-9-28 10:50:45 | 只看该作者
    程序测试和手工测的区别在于此
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    9 小时前
  • 签到天数: 2666 天

    连续签到: 3 天

    [LV.Master]测试大本营

    5#
    发表于 2018-9-28 11:14:39 | 只看该作者
    直接定义好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2018-9-28 11:58:44 | 只看该作者

    譬如这样吗~这是根据上面的函数改的
    reduceAddCount:function(reduce,add,goods_num){
            var reduce = 0
            var add = 1
            var goods_num
    /*    let index = e.currentTarget.dataset.index
        let cartData = JSON.parse(JSON.stringify(this.data.cartData))*/
        if (reduce === '0') {
          if (goods_num > 1){
                  --goods_num
          }else {
          if(cartData[index].goods_num < cartData[index].goods.store_count){
            ++goods_num
          }else{

              console.log('库存不足');

          }
        }
      }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2018-9-28 14:26:02 | 只看该作者

    是像6楼那样吗  写的不太对 修改过了  大致意思是这样的吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 11:23
  • 签到天数: 316 天

    连续签到: 1 天

    [LV.8]测试军长

    8#
    发表于 2018-9-28 14:58:02 | 只看该作者
    还没接触过单元测试,应该可以直接定义点击事件吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2018-9-28 15:00:50 | 只看该作者

    好滴!谢谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-8 16:51 , Processed in 0.073109 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表