代码在这里:
package main
import (
"fmt"
)
type Connector struct {}
func (c *Connector) Pool() (interface{}, error) {
err := c.ping()
if err != nil {
fmt.Println("error handle logic");
return nil, err
}
fmt.Println("success logic")
return 1, nil
}
func (c *Connector) ping() error {
var err error
// err = some side-effect RPC operation
if err != nil {
return err
}
return nil
}
现在,我想测试一下struct的Pool方法。Connector由于该ping方法有一些副作用 RPC 操作,我需要对它及其返回值进行存根,以便我可以测试该Pool方法中的每个代码分支。
成功测试用例伪代码:
Stub(c, "ping").Return(nil)
c.Pool()
Expect(fmt.Println).ToBeCalledWith("success logic")
失败测试用例伪代码:
Stub(c, "ping").Return(errors.New("test"))
c.Pool()
Expect(fmt.Println).ToBeCalledWith("error handle logic")
一只斗牛犬
慕桂英546537
随时随地看视频慕课网APP
相关分类