338 строки
10 КиБ
Gherkin
338 строки
10 КиБ
Gherkin
# language: ru
|
|
Функционал: AST-редактир go-файлов
|
|
Сгенерированные функции автоматически добавляются в тест-файл текущего пакета
|
|
|
|
Сценарий: Добавление шага
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
```
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "init_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`^Привет Мир!$`, ПриветМир)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир() {
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Добавление шага с параметрами: int
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
```
|
|
Дано Параметр: "arg1", "int"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 int) {
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Добавление шага с параметрами: int, string
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
```
|
|
Дано Параметр: "arg1", "int"
|
|
Дано Параметр: "arg2", "string"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 int, arg2 string) {
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Добавление шага с параметрами: string, int
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
```
|
|
Дано Параметр: "arg1", "string"
|
|
Дано Параметр: "arg2", "int"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 string, arg2 int) {
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Добавление шага к существующему
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`сделать чтото`, СделатьЧтото)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func СделатьЧтото(arg1 string, arg2 int) {
|
|
a := 1
|
|
}
|
|
|
|
```
|
|
Дано Параметр: "arg1", "int"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "init_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`сделать чтото`, СделатьЧтото)
|
|
ctx.Step(`^Привет Мир!$`, ПриветМир)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func СделатьЧтото(arg1 string, arg2 int) {
|
|
a := 1
|
|
}
|
|
func ПриветМир(arg1 int) {
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Не добавляет если шаг с такой функцией уже есть
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`^Привет Мир!$`, ПриветМир)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 string, arg2 int) {
|
|
a := 1
|
|
}
|
|
|
|
```
|
|
Дано Параметр: "arg1", "int"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "init_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`^Привет Мир!$`, ПриветМир)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 string, arg2 int) {
|
|
a := 1
|
|
}
|
|
|
|
```
|
|
|
|
Сценарий: Второй раз - не добавляет
|
|
Дано Файл "init_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
Дано Файл "mypkg_test.go":
|
|
```
|
|
package mypkg
|
|
|
|
```
|
|
Дано Параметр: "arg1", "int"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир"
|
|
То Файл "init_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func InitializeScenario(ctx *godog.ScenarioContext) {
|
|
ctx.Step(`^Привет Мир!$`, ПриветМир)
|
|
|
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
|
beforeScenario()
|
|
return ctx, nil
|
|
})
|
|
ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) {
|
|
afterScenario()
|
|
return ctx, nil
|
|
})
|
|
InitializeGomegaForGodog(ctx)
|
|
}
|
|
|
|
```
|
|
То Файл "mypkg_test.go" должен содержать:
|
|
```
|
|
package mypkg
|
|
|
|
func ПриветМир(arg1 int) {
|
|
}
|
|
|
|
```
|