美文网首页
Beego 控制器 单元测试

Beego 控制器 单元测试

作者: phpdi | 来源:发表于2019-11-19 17:28 被阅读0次

1.在controllers文件目录中建立文件base_test.go,代码如下

package controllers

import (
    "fmt"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/context"
    "net/http"
    "net/url"
)

type testResponseWriter struct{}

func (f *testResponseWriter) Header() http.Header {
    return http.Header{}
}
func (f *testResponseWriter) Write(b []byte) (int, error) {
        //输出打印到终端
    fmt.Println(string(b))
    return 0, nil
}
func (f *testResponseWriter) WriteHeader(n int) {}

//构造控制器 BaseController是我项目的基础控制器,你可以换成你的,但必须继承自beego.Controller
func (c *BaseController) makeCtx() *BaseController {

    c.Ctx = context.NewContext()
    c.Ctx.Request = &http.Request{URL: &url.URL{Scheme: "http", Host: "localhost", Path: "/"}}
    c.Ctx.ResponseWriter = &context.Response{ResponseWriter: &testResponseWriter{}, Started: true}

    c.Ctx.Input.Context = c.Ctx
    c.Ctx.Input.RequestBody = []byte{}

    c.Ctx.Output.Context = c.Ctx

    c.Data = map[interface{}]interface{}{}

    return c
}

//阻止控制器中调用this.StopRun 而导致的panic
func recoverUserStop() {
    if err := recover(); err == beego.ErrAbort {
        return
    } else {
        panic(err)
    }
}


2.调用示例

func TestClientController_List(t *testing.T) {
    defer recoverUserStop()
    this := new(ClientController)

    this.makeCtx()

    this.List()
}

}

相关文章

  • Beego 控制器 单元测试

    1.在controllers文件目录中建立文件base_test.go,代码如下 2.调用示例

  • beego源码分析笔记一

    beego官网:https://beego.me/ beego 的架构 beego 的整体设计架构如下所示: 官方...

  • 2.2 Beego中路由的快速体验

    2.2 Beego中路由的快速体验 2.2.1路由的简单设置 路由的作用:根据不同的请求指定不同的控制器 路由函数...

  • beego自动路由

    自动匹配 用户首先需要把需要路由的控制器注册到自动路由中: 那么 beego 就会通过反射获取该结构体中所有的实现...

  • ota go 服务搭建

    整体设计: golang&beego 在设计中,采用了golang 语言,使用了开源的beego , beego ...

  • Beego Architecture

    https://beego.me/[https://beego.me/] Beego框架起始于2012年由中国程序...

  • beego生成api工程

    生成beego工程之前需要先配置好beego与bee环境 生成beego工程 本工程采用api的形式,不需要界面,...

  • Beego自动化文档(最新版)

    之前写过一篇使用Beego自动化api文档的文章:Beego自动化文档,随着Beego的更新,1.7.0之后Bee...

  • 安装beego和bee

    1:安装beego框架:go getgithub.com/astaxie/beego 2:安装bee:go get...

  • beego 接口跨域请求配置

    在目录routers中init.go文件中新增代码: beego.InsertFilter("*", beego....

网友评论

      本文标题:Beego 控制器 单元测试

      本文链接:https://www.haomeiwen.com/subject/uplgictx.html