我是Go新手,我仍在努力理解它的概念。我正在尝试创建一个简单的单元测试并想要Mock它的一项服务。我想模拟my_mod_2.EmpInfo它,这样我就不会调用实际的服务。
方法1.go
package my_mod_1
import (
"awesomeProject-1/my-mod-2"
)
func CreateAndSendMail() string {
svc := my_mod_2.EmpInfo{}
name := svc.GetName()
empAddress := svc.GetAddress()
return name + " lives in " + empAddress
}
这里是Emp.go
package my_mod_2
import "fmt"
type EmpInfo struct {}
func (o EmpInfo) GetName() string{
fmt.Println("Called actual")
return "John Doe"
}
func (o EmpInfo) GetAddress() string {
return "US"
}
这是method-1_test.go
package my_mod_1
import (
"testing"
)
func TestCreateAndSendMail(t *testing.T) {
val := CreateAndSendMail()
if val != "John Doe lives in US" {
t.Error("Value not matched")
}
}
我Called actual在测试执行中看到。我知道我必须使用创建一个模拟,interface但我就是不明白。有人可以帮我解决这个小代码吗?
慕尼黑5688855
阿晨1998
相关分类