У нас был разработчик, который хотел запускать лямбда-функции локально и тестировать в этой усадьбе. Я, честно говоря, считаю, что это довольно бесполезно и не добавляет никакой ценности, причина в том, что вы не проверяете ничего, кроме своего собственного понимания Спецификации языка States.
Скажем, вы пишете тест на какую-то работу выдает исключение:
"Try": {
"Next": "Job Succeeded",
"Type": "Parallel",
"Branches": [{
"StartAt": "TODO",
"States": {
"TODO": {
"Comment": "This throws an exception.",
"Type": "Task",
Resource": "arn:aws:states:::states:startExecution.waitForTaskToken",
"Parameters": {
"Input": {
"something.$": "$$.Execution.Input.something"
}
},
"End": true
}
}
"Catch": [{
"ErrorEquals": ["States.ALL"],
"Next": "Job Failed"
}]
}
И проверка, когда TODO
не удается, переходит к Job Failed
, а при успешном завершении - Job Succeeded
. Что ж, это определенно произойдет, нет необходимости проверять это, если только вы не работаете на AWS.
Единственные реальные тесты, которые стоит сделать, это интеграционные тесты и тестирование производительности. Вы можете смоделировать отключение службы, отключение базы данных и т. Д. c. запустив пошаговую функцию, и получим результат. Даже если вы знаете, что ваши задачи вернутся к тестам интеграции функций, это не даст вам много.
Я бы посоветовал сосредоточить ваши усилия на тестировании производительности пошаговых функций, это покажет, если у вас начнутся проблемы в вашей системе, если время действия пошаговой функции истекло и т. д. c. Но модульное тестирование пошаговой функции не скажет вам ничего, чего вы еще не знаете. В этом вся суть с пошаговыми функциями.