zoukankan      html  css  js  c++  java
  • goconvey测试模块

    一、介绍

    是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 Web 界面特性。

    GoConvey 网站 : http://smartystreets.github.io/goconvey/

    GoConvey 支持 go test。可直接在终端窗口和浏览器上使用。

    安装

    go get github.com/smartystreets/goconvey
    
    #安装中可能会提示golang.org/x/tools/go/packages安装错误,
    这里直接去github上下载后,解压到上面提示错误的文件位置
    https://github.com/golang/tools/

    在$GOPATH/bin目录下新增了GoConvey框架的可执行程序goconvey,运行后就可以访问web的UI界面了

    http://localhost:8080/

    二、代码

    #goconvey_demo.go文件
    package goconvey
    
    import (
        "errors"
    )
    
    func Add(a, b int) int {
        return a + b
    }
    
    func Subtract(a, b int) int {
        return a - b
    }
    
    func Multiply(a, b int) int {
        return a * b
    }
    
    func Division(a, b int) (int, error) {
        if b == 0 {
            return 0, errors.New("被除数不能为 0")
        }
        return a / b, nil
    }
    
    func SquareSubtract(a, b int) int {
        return a*a + b*b
    }
    #goconvey_text.go注意必须以_test结尾的文件名
    package goconvey
    
    
    import (
        "testing"
    
        . "github.com/smartystreets/goconvey/convey"
    )
    
    func TestAdd(t *testing.T) {
        Convey("将两数相加", t, func() {
            So(Add(1, 2), ShouldEqual, 3)
        })
    }
    
    func TestSubtract(t *testing.T) {
        Convey("将两数相减", t, func() {
            So(Subtract(1, 2), ShouldEqual, -1)
        })
    }
    
    func TestMultiply(t *testing.T) {
        Convey("将两数相乘", t, func() {
            So(Multiply(3, 2), ShouldEqual, 6)
        })
    }
    
    func TestDivision(t *testing.T) {
        Convey("将两数相除", t, func() {
    
            Convey("除以非 0 数", func() {
                num, err := Division(10, 2)
                So(err, ShouldBeNil)
                So(num, ShouldEqual, 5)
            })
    
            Convey("除以 0", func() {
                _, err := Division(10, 0)
                So(err, ShouldNotBeNil)
            })
        })
    }
    
    func TestSquareSubtract(t *testing.T) {
        Convey("将两数平方相加",t, func() {
            So(SquareSubtract(5,6),ShouldEqual,61)
        })
    }

    打开命令行,然后输入 go test -v 来进行测试

    #测试结果
    === RUN   TestAdd
    
      将两数相加 .
    
    
    1 total assertion
    
    --- PASS: TestAdd (0.00s)
    === RUN   TestSubtract
    
      将两数相减 .
    
    
    2 total assertions
    
    --- PASS: TestSubtract (0.00s)
    === RUN   TestMultiply
    
      将两数相乘 .
    
    
    3 total assertions
    
    --- PASS: TestMultiply (0.00s)
    === RUN   TestDivision
    
      将两数相除
        除以非 0 数 ..
        除以 0 .
    
    
    6 total assertions
    
    --- PASS: TestDivision (0.00s)
    === RUN   TestSquareSubtract
    
      将两数平方相加 .
    
    
    7 total assertions
    
    --- PASS: TestSquareSubtract (0.00s)
    PASS
    ok      awesomeProject/goconvey 0.658s
  • 相关阅读:
    异步任务AsyncTask
    巧用TextView实现分隔线
    android系统的常用权限
    浅析对话框AlertDialog
    LinearLayout中的layout_weight属性详解
    CLOB大数据对象
    模糊查询demo
    ES6 箭头函数
    ES6中数组求和,求平均数方法( reduce )
    ES6中数组方法( every 和 some )
  • 原文地址:https://www.cnblogs.com/angelyan/p/11312503.html
Copyright © 2011-2022 走看看