№ 11006 В разделе "Programming" от May 26th, 2020,
Чтобы без проблем тестировать программы, написанные с использованием вашей библиотеки ее необходимо подготовить для этого. Делаем интерфейс, который будет использоваться в тестах, где ваши реальные функции будут заменены функциями с тестовыми данными.
package main import "fmt" // library type FooAdapter interface { Read() string } type Foo struct { mvar string } func NewFoo(v string) FooAdapter { return &Foo{mvar:v} } func (a *Foo) Read() string { return "orig: " + a.mvar } // test func NewFooStub(v string) FooAdapter { return &FooStub{mvar: v} } type FooStub struct { mvar string } func (s *FooStub) Read() string { return "stub: " + s.mvar } func main() { z := NewFoo("o") fmt.Println("Read", z.Read()) m := NewFooStub("s") fmt.Println("Read", m.Read()) }
https://play.golang.org/p/9utaWeDjNjo
Fortune cookie: I want a girl that can swallow my pride. -- Frank Zappa, "Jewish Princess"
Leave a Reply