我正在尝试解决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包文档中找不到任何参考。
相关分类