Как справиться с угловыми / краевыми / ошибочными случаями со спокойствием
Мне нравится идея сосредоточиться на бизнес-сценариях. Однако, как разработчик, я также хочу, чтобы в случаях ошибок были автоматические нерегрессионные тесты.
Например, в функции электронной коммерции будет сценарий
Джеймс использует свою кредитную карту для оплаты
Джеймс должен увидеть, что покупка прошла успешно
Но как насчет сценариев, когда его кредитная карта недействительна или его банк отклонил транзакцию. Эти сценарии тесно связаны с деталями реализации.
Я не понимаю, как я могу справиться с автоматическим тестированием этих сценариев в рамках философии Serenity. Если я напишу сценарии, мне придется упомянуть текущие детали реализации. Когда я читаю литературу вокруг "Безмятежности", я чувствую, что она предназначена только для проверки счастливого пути, потому что это то, что заботит деловых людей. Однако в реальных случаях ошибки и более сложные потоки являются важными частями приложений и выигрывают от автоматических тестов.
Не могли бы вы помочь мне понять, как я должен подходить к тестированию этих сценариев? Спасибо!
1 ответ
Я думаю, что ваш вопрос связан с BDD/Gherkin, а не Serenity. BDD абсолютно не ограничивает критерии принятия на пути счастливого дня - я бы даже сказал, что это анти-паттерн. Если бизнес заинтересован в отрицательном пути (и часто они есть), это должен быть критерий приемлемости. Например:
Scenario: James has insufficient funds on his account
Given James has a $1000 limit on his credit card
And he has already spent $900
When he attempts to purchase a meal costing $150
Then the transaction should be refused