обновки

pull/2/head^2
Andrey Ivanov 2020-06-10 14:32:21 +03:00 committed by Andrey Ivanov
parent e370d8acba
commit 6468eb6c1c
2 changed files with 15 additions and 14 deletions

View File

@ -15,7 +15,7 @@ const (
func TestPipeline(t *testing.T) {
// Stage generator
g := func(name string, f func(v I) I) Stage {
g := func(name string, f func(v interface{}) interface{}) Stage {
return func(in In) Out {
out := make(Bi)
go func() {
@ -30,10 +30,10 @@ func TestPipeline(t *testing.T) {
}
stages := []Stage{
g("Dummy", func(v I) I { return v }),
g("Multiplier (* 2)", func(v I) I { return v.(int) * 2 }),
g("Adder (+ 100)", func(v I) I { return v.(int) + 100 }),
g("Stringifier", func(v I) I { return strconv.Itoa(v.(int)) }),
g("Dummy", func(v interface{}) interface{} { return v }),
g("Multiplier (* 2)", func(v interface{}) interface{} { return v.(int) * 2 }),
g("Adder (+ 100)", func(v interface{}) interface{} { return v.(int) + 100 }),
g("Stringifier", func(v interface{}) interface{} { return strconv.Itoa(v.(int)) }),
}
t.Run("simple case", func(t *testing.T) {

View File

@ -29,21 +29,22 @@ HTTP API, например, после запуска должно быть до
### 2) Интеграционное тестирование
Необходимо:
* создать отдельный пакет для интеграционных тестов;
* описать бизнес-сценарии на языке Gherkin в *.feature файлах;
* реализовать все шаги сценариев с использованием библиотеки https://github.com/cucumber/godog:
при этом шаги могут рассчитывать на то, что запущены в docker-compose и знают endpoint'ы всех
сервисов; сценарии работают с HTTP/GRPC API календаря, при необходимости с БД и очередью сообщений;
* создать отдельный пакет для интеграционных тестов.
* реализовать интеграционные тесты на языке Go; при желании можно использовать
[godog](https://github.com/cucumber/godog) / [ginkgo](https://github.com/onsi/ginkgo), но
обязательным требованием это **не является**.
* создать docker-compose файл, поднимающий все сервисы проекта + контейнер с интеграционными тестами;
* расширить Makefile командой `bdd`, `make bdd` будет запускать интеграционные тесты;
* расширить Makefile командой `integration-tests`, `make integration-tests` будет запускать интеграционные тесты;
**не стоит смешивать это с `make test`, иначе CI-пайплайн не пройдёт.**
* прикрепить в Merge Request вывод команды `make integration-tests`.
Преподаватель может запустить интеграционные тесты в `docker-compose` с помощью команды `make bdd`.
В случае успешного выполнения команда должна возвращать 0, иначе 1.
Преподаватель может запустить интеграционные тесты с помощью команды `make integration-tests`:
- команда должна поднять окружение (`docker-compose`), прогнать тесты и подчистить окружение за собой;
- в случае успешного выполнения команда должна возвращать 0, иначе 1.
### Критерии оценки
- Проект полностью запускается и останавливается с помощью `make up` / `make down` - 3 балла
- Интеграционные тесты запускаются с помощью `make bdd`. Команда возвращает верный код ответа - 1 балл
- Интеграционные тесты запускаются с помощью `make integration-tests`. Команда возвращает верный код ответа - 1 балл
- Интеграционные тесты покрывают бизнес сценарии:
- добавление события и обработка бизнес ошибок - 2 балла
- получение листинга событий на день/неделю/месяц - 2 балла