【发布时间】:2022-12-23 03:07:13
【问题描述】:
我一直在尝试模拟 fiber.Ctx 但我无法使其正常工作我一直收到此错误:
--- 失败:TestCheckHeaders(0.00s) 恐慌:运行时错误:无效内存地址或 nil 指针取消引用 [已恢复] 恐慌:运行时错误:无效的内存地址或零指针取消引用 [信号 SIGSEGV:分段违规代码=0x1 地址=0x0 pc=0x12085f0]
我要测试的代码:
CheckHeaders.go
package middleware import "github.com/gofiber/fiber/v2" func CheckHeaders(c *fiber.Ctx) error { headers := c.GetReqHeaders() if headers["headerValue"] == "true"{ return c.Next() } else { return c.SendStatus(401) } }CheckHeaders_test.go
package middleware import ( "testing" "github.com/gofiber/fiber/v2" ) func TestCheckHeaders(t *testing.T) { type args struct { c *fiber.Ctx } fiberContext := fiber.Ctx{} tests := []struct { name string args args wantErr bool }{ {name: "test 1", args: args{c: &fiberContext}, wantErr: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if err := CheckHeaders(tt.args.c); (err != nil) != tt.wantErr { t.Errorf("CheckHeaders() error = %v, wantErr %v", err,tt.wantErr) } }) } }
【问题讨论】:
标签: go testing mocking go-fiber