使用 testing.T 作为匿名结构字段:

我正在尝试解决Go 中的Karate Chop kata 作为练习,并在我的测试用例中遇到了这个编译器错误:


调用 this.T.common.Fail 的参数太多


我testing.T用额外的方法包装成一个结构体,作为一个匿名结构体字段:


package main


import (

    "fmt"

    "testing"

)


type assertions struct {

    *testing.T

}

func (this assertions) assert_equal(expected int, actual int) {

    if (expected != actual) {

        this.Fail(fmt.Sprintf("Failed asserting that %v is %v", actual, expected));

    }

}


func TestChop(t *testing.T) {

  test := assertions{t}


  test.assert_equal(-1, Chop(3, []int{}))

  test.assert_equal(-1, Chop(3, []int{1}))

  ...

}

我希望this.Fail调用带有字符串参数Fail()的匿名testing.T结构字段。为什么不是这种情况,它this.T.common.Fail来自哪里?我common在testing包文档中找不到任何参考。


富国沪深
浏览 151回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go