Данные заполнения для приемочного тестирования приложения AWS Serverless - PullRequest
0 голосов
/ 17 октября 2019

Я начинаю учить себя разработке без сервера, используя AWS Lambda и CLI без сервера. Пока все идет отлично. Однако у меня есть проблема с приемочным тестированием.

Пока я делаю следующее:

  • Развертывание стека в AWS с сгенерированным сценическим именем - я используюидентификатор задания CI для этого
  • Запустить все тесты для этого развертывания
  • Удалить развертывание
  • Развернуть стек в AWS с именем этапа "Dev"

Это нормально, пока мне не понадобятся некоторые данные.

Тестировать конечные точки без данных легко - это состояние по умолчанию. Таким образом, я могу проверить, что GET /users/badid возвращает 404.

Какой типичный способ настройки тестовых данных для тестов?

В моей обычной разработке я делаю это, запуская полный стек - пользовательский интерфейс, службы, базы данных - в локальном стеке составления докеров, и тесты могут напрямую с ними общаться. Это процесс, которому нужно следовать здесь: тесты общаются напрямую с различными хранилищами данных AWS? Если да, то как вы обрабатываете несколько таблиц (DynamoDB) в разных стеках CF, например, для тестирования интерфейса?

Если это не обычный способ, что?

Кроме того,Есть ли стандартный способ очистки данных между тестами? Я не могу безопасно проверить конечную точку поиска, если данные не постоянны для этого теста, например. (Если данные не очищены, данные в системе будут зависеть от порядка выполнения тестов, что плохо)

Cheers

1 Ответ

0 голосов
/ 21 октября 2019

С тех пор речь идет о приемочных тестах - они должны быть разработаны таким образом, чтобы меньше заботиться об архитектуре (с технической стороны) и больше о коммерческой ценности. Ведь такими тестами должен быть черный ящик. Судя по опыту работы с SLS или mSOA, настройки и задачи тестирования очень похожи.

Какой типичный способ настройки тестовых данных для тестов?

Есть много способов / шаблонов для выполнения этой работы, в зависимости от вашего контекста. Для меня больше всего подойдут:

Вы можете взглянуть на Шаблоны срывов приборов для

стандартного способа очистки данных между тестами

Возможно, вам не нужно

Попросите тесты напрямую общаться с различными хранилищами данных AWS

, так как вы можете создать нереалистичное состояние, если вы можете просто нажать API / конечные точки для выполнения работыдля тебя. Например, вместо управления вызовами PutItem нескольких экземпляров DynamoDB - просто нажмите новый пользовательский API register. Подробнее о слое манипуляции с задней дверью здесь .

...