4 ms·
We are finding that unit testing is pretty straightforward with Placebo [0] (also Mitch Garnaat!), for which we use a common "boto client getter" library that t
by ben11kehoe 10y ago
We are finding that unit testing is pretty straightforward with Placebo [0] (also Mitch Garnaat!), for which we use a common "boto client getter" library that the unit test framework can hook into to inject Placebo.
The really hard part is integration testing. You can Chaos-Monkey your Lambda functions, but you can't Chaos-Monkey DynamoDB. We're looking at ways of building tooling to do that.
For deployment, we wanted to use Serverless, but as they started to move away from CloudFormation, that didn't work for our more enterprise needs, so we've been rolling our own, based on ideas from Kappa.
[0] https://github.com/garnaat/placebo https://github.com/garnaat/placebo
- matlock 10y agoHey Ben, we're going to build completely on top of Cloudformation in the next version of Serverless. Currently starting to work on it. If you're interested would love to get your feedback: florian@serverless.com
- jedberg 10y agoMitch actually built Placebo alongside kappa, because he needed a way to test kappa. He even submitted a pull request against boto to make it support placebo. Sadly though, placebo is better for mocking the other AWS services, not so much a mesh of Lambda functions. Have you guys figure out a way to do offline testing of one Lambda calling another? I'd love to see it!
- ak217 10y ago> you can't Chaos-Monkey DynamoDB I bet you could achieve this effect by either temporarily decreasing provisioned throughput, or inserting clientside middleware that occasionally refuses to do a DynamoDB op.
- jedberg 10y agoThe middleware would be best option. Put it between your code and the calls and then have it able to throw random errors. But it means you have to write the middleware and have it be it's own source of bugs, which is still better than nothing, but another risk.
- bobbyi_settv 10y agoIs Placebo better than moto? It sounds very similar. https://github.com/spulec/moto https://github.com/spulec/moto