fuzzing 测试数字为何不起作用? 0-2023为什么测试数秒还没报错?

aaaaaaaa1 · 2022-05-21 10:15:30 · 1277 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2022-05-21 10:15:30 的主题,其中的信息可能已经有所发展或是发生改变。

模糊测试以种子: 58 10 随机测试, 必然会测试大于2023的值, 这里为何测试通过? 这段测试代码有什么问题?"

func checkAge(num int) error{
    if num >2023{
        // error
        return errors.New("耶稣的年龄不能大于2023")
    }
    return nil
}

func FuzzAge(f *testing.F) {
    // seed
    f.Add(58)
    f.Add(10)
    // fuzzing
    f.Fuzz(func(t *testing.T, age int) {
        if err:= checkAge(age); err == nil {
            t.Log("正确", age )
        }else {
            t.Log(age)
            t.Error(err.Error())
        }
    })
}
command:  go test -v -fuzz=Fuzz

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1277 次点击  
加入收藏 微博
1 回复  |  直到 2022-05-22 11:21:17
fulltimelink
fulltimelink · #1 · 3年之前
f.add(2021)
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传