• 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
  • 相关阅读:
    .Net下的MSMQ(微软消息队列)的同步异步调用
    [收藏]JS获取网页中HTML元素的几种方法分析
    在FireFox下设为首页的解决方法
    如何创建和使用Web Service代理类
    [收藏]61条面向对象设计的经验原则
    [总结]DotNet中用到的加密算法总结
    如何把用SQL语句int型整数转换成二进制数
    彻底杜绝PHP的session,cookie,Cannot modify header错误
    MSN总是报80048820的错误,网上搜的一些资料解决不了,我找到了真正解决办法!
    [收藏]MD5加密的javascript实现
  • 原文地址:https://www.cnblogs.com/angelyan/p/11312503.html
Copyright © 2020-2023  润新知