76 строки
1,4 КиБ
Go
76 строки
1,4 КиБ
Go
package ast
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"git.golang1.ru/softonik/godog"
|
|
"git.golang1.ru/softonik/godog/pkg/lib"
|
|
. "git.golang1.ru/softonik/godog_and_gomega"
|
|
. "github.com/onsi/gomega"
|
|
. "github.com/onsi/gomega/format"
|
|
)
|
|
|
|
type testData struct {
|
|
tempdir string
|
|
params Параметры
|
|
}
|
|
|
|
var (
|
|
t *testData
|
|
)
|
|
|
|
func resetTestData() {
|
|
t = &testData{}
|
|
}
|
|
func beforeSuite() {
|
|
CharactersAroundMismatchToInclude = 50
|
|
}
|
|
func afterSuite() {
|
|
}
|
|
|
|
func beforeScenario() {
|
|
resetTestData()
|
|
createTempDir()
|
|
}
|
|
func afterScenario() {
|
|
rmTempDir()
|
|
}
|
|
|
|
func createTempDir() {
|
|
dir := filepath.Clean(os.TempDir())
|
|
tempDir, err := os.MkdirTemp(dir, "test-")
|
|
Ok(err)
|
|
t.tempdir = tempDir
|
|
err = os.Chdir(t.tempdir)
|
|
Ok(err)
|
|
}
|
|
|
|
func rmTempDir() {
|
|
err := os.RemoveAll(t.tempdir)
|
|
Ok(err)
|
|
}
|
|
|
|
// -----------------------
|
|
|
|
func файл(fname string, content *godog.DocString) {
|
|
err := lib.WriteFile(fname, content.Content)
|
|
Ok(err)
|
|
}
|
|
func параметр(имя, тип string) {
|
|
t.params = append(t.params, Параметр{имя, тип})
|
|
}
|
|
func добавляетсяФункция(func_name string) {
|
|
err := ДобавитьТестовуюФункцию(func_name, t.params)
|
|
Ok(err)
|
|
}
|
|
func файлДолженСодержать(fname string, content *godog.DocString) {
|
|
cont, err := lib.ReadFile(fname)
|
|
Ok(err)
|
|
|
|
Ω(cont).To(Be(content.Content))
|
|
|
|
pkg, err := получитьИмяGoПакетаФайла(fname)
|
|
Ok(err)
|
|
Ω(pkg).To(Be("mypkg"))
|
|
}
|