package service import ( "bytes" "io" "strings" . "my/go-translator/pkg/testgodoglib" "github.com/cucumber/godog" . "github.com/onsi/gomega" ) type testData struct { src []string } var ( t *testData ) func resetTestData() { t = &testData{} _ = Ω } func beforeSuite() { } func afterSuite() { } func beforeScenario() { resetTestData() } func afterScenario(result error) { } // ----------------------- func исходник(src *godog.DocString) { t.src = append(t.src, src.Content) } func результат(out *godog.DocString) { Compare_new(t.src, out.Content) } func Compare_new(source []string, expected string) { var in []io.Reader var out bytes.Buffer for _, s := range source { b := &bytes.Buffer{} b.WriteString(s) in = append(in, b) } service := NewService(in, &out) err := service.Start() got := out.String() tgot, texpected := trim_new(got), trim_new(expected) // spew.Dump(got) ExpectWithOffset(1, err).NotTo(HaveOccurred()) ExpectWithOffset(1, tgot).To(Be(texpected)) } func trim_new(s string) string { s = strings.Replace(s, "\n", "", -1) s = strings.Replace(s, "\r", "", -1) s = strings.Replace(s, "\t", "", -1) return s } func Compare(source, expected string) { var in, out bytes.Buffer in.WriteString(source) service := NewService([]io.Reader{&in}, &out) err := service.Start() got := out.String() tgot, texpected := Trim(got), Trim(expected) // spew.Dump(tgot) ExpectWithOffset(1, err).NotTo(HaveOccurred()) ExpectWithOffset(1, tgot).To(Be(texpected)) } func Trim(s string) string { s = strings.Replace(s, " ", "", -1) s = strings.Replace(s, "\n", "", -1) s = strings.Replace(s, "\r", "", -1) s = strings.Replace(s, "\t", "", -1) return s }