We use the serverless offline application and also run dynamodb locally. It works surprisingly well. We also rely much on unit tests to prove that our Lambdas work as expected. We use mocking (in python) to mock specific parts of the code so that our unit tests can be run locally.
For integration tests, we don’t run them in the code pipeline (GitLab CI/CD) because we don’t have dynamodb installed there (but we might arrange that later), we only run unit tests in the pipeline. But locally we also run integration tests that actually connect to DynamoDB locally.
Actually it works even better than I expected…