1
我与Golang工作,目前我正在做一些有趣的单元测试与Testify,我的文件看起来像这样Golang:更换功能单元测试
type myStruct struct {
field_1 string
}
func (self *myStruct) writeFirst() {
//doing something
//modify field_1
self.writeSecond()
}
func (self *myStruct) writeSecond() {
//doing something
}
在这种情况下我测试writeFirst( ),但我试图替换writeSecond(),因为它使用的是我不想使用的东西,因为它访问互联网。
我认为使用第二个结构并将myStruct设置为匿名字段将是解决方案,但它不起作用,因为我第二个struct和myStruct有不同的上下文。
在这种情况下,我不能使用mocks原因writeSecond是结构的一种方法。
我的测试用例是这样的:
func TestWriteFirst(t *testing.T) {
myStc := myStruct{}
assert.Equal(t,"My response", myStc.field_1)
}
所有我想没有通正在测试writeFirst到writeSecond()
据我所知,你不能,你必须使用标志或东西,使'writeSecond'被忽略。 – OneOfOne
您必须重构代码,使writeSecond可以模拟并注入测试的某种接口。 –