【发布时间】:2021-12-28 21:11:54
【问题描述】:
我有以下对 AWS IAM 进行多次调用的函数。我能够在单个调用上运行单元测试。但是,当我在下面的一个上运行测试时,我会感到恐慌:“运行时错误,无效内存或 nil 指针取消引用”
func (iamDependency *iamService) CreateMyUser(userName string) (string, error){
//first IAM call
err:=iamDependency.GetUser(&iam.GetUserInput{UserName: userName})
if err != nil {
fmt.Println("Failed to get user, attempting to create")
//second IAM call
err:=iamDependency.CreateUser(&iam.CreateUserInput{UserName: userName})
if err != nil {
log.Fatalf("Failed to create user\n", err )
}
}
}
这是我的模拟和测试:
type mockSomeOutput{}
type mockedIamCall{
iamiface.IAMAPI
Response mockSomeOutput
}
func TestCreateMyUser(t *testing.T){
t.Run("Successful user create", fun(t *testing.T){
mo:= mockOutput{}
m:= mockedIamCall{Response: mo}
d:= iamService{
iamInstance: m,
}
mockedUser:="TestUser"
_, err:= d.ResetCredentials(&mockedUser)
if err != nil {
t.Fatal("Everything should be ok")
}
})
}
我想知道在 Golang 中为这种函数进行单元测试是否有任何技巧或指南。
感谢任何帮助。
【问题讨论】:
标签: amazon-web-services unit-testing go aws-sdk-go